Interactive UI Programming with C++ and ImGui 
What you'll learn
- Create 2D graphical applications using C++
- Use GLFW for windowing and keyboard and mouse inputs
- Use the GLM library for basic 2D mathematics
- Work with multiple windows
- Create UI with the help of ImGui
- Multiple ImGui controls for logic
- How to initialize BGFX for graphics programming
- Good coding standards and google coding style
- How to create custom UI themes and controls with ImGui
- How to draw lines and shapes in ImGui
- How to process input and other ImGui events
- Understand Basic C++
This course is an easy and straightforward introduction into UI programming with C++. The course is segmented into short and on point lessons that focus on concrete topics. In this course you will learn how to initialize a window and graphics and then create various elements with a library called ImGui.
To participate and learn from this course you should already know C++ at a good level since the basics of programming won't be covered. Otherwise this course is appropriate for junior developers that are familiar with the language. The level of C++ will be kept easy to grasp with no complicated concepts outside of basic OOP.
Throught the course you will learn how to use a few different libraries. Learning these will generally help you understand a few more concepts than just the UI programming bit. The few major libraries that I've inlcuded in the course are:
GLFW - a library used to create and manage windows in your GUI environment. This is an abstraction library over the native interfaces of windows, mac and linux windows.
BGFX - a popular cross-platform library for rendering graphics onto a window. Similar to how GLFW is an abstraction over the native windows - bgfx represents an abstraction over Vulkan, OpenGL, DirectX, etc. This library is used by major developers including Microsoft's Minecraft.
GLM - a simple math library which we will use mainly for the 2D vector calculations for sizes and positions of UI elements onto the window.
Dear, ImGui - an immediate mode UI library. You define the UI through code and it issues commands for GLFW and BGFX to be rendered. Each frame is drawn immediately from the issued commands which also means that each frame you need to redefine the UI. This is usually easier to work with from a programmer stand point.
Who this course is for:
- Beginner C++ developers who want to learn more about UI programming
- Game programmers with knowledge about C++ who want to go deeper into graphics and UI
- Programmers that want to create low-level tools with C++
Hi, I'm Hristo,
I'm a Software Engineer and in my professional carrer I've been a Technical Lead with C# and Senior Gamplay Programmer with C++. I have practical and advanced knowledge in many programming languages. I am also the co-founder of a startup called Paper Cranes Ltd. which specializes in website development.
In my line of work, I've mentored and elevated many professionals to be experienced developers. If you learn with me you will be gaining real practical knowledge that you can apply tomorrow at your job or at your next project.