I created my second course. In this one I teach a little bit about graphics programming but mostly focusing on the UI programming with ImGui. Dear, ImGui is an easy to learn and use library that creates immediate user interfaces. It is popular within the gaming industry as well as in the academic environments. Just look at the stars. I also use BGFX as a warpper around the graphical APIs.
Table of Contents
How to get the course
You can watch the course now on Udemy. If you use this link you will get a discount and you also support my work since I will get 97% for this which is a win-win situation.
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.
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
- Understand Basic C++
- Understand Basic OOP