
Preview the final project: a Windows 95–style desktop app with movable icons, a file explorer, text editor, calendar, painting and plotting tools, and a customizable theme.
Explore dear imgui, a bloat-free, open-source C++ GUI library for real-time apps and game engines. It offers minimal dependencies, code-driven UIs, cross-backend support (OpenGL, DirectX), and portable, free licensing.
Select and configure ImGui backends, with the OpenGL backend serving all major operating systems. Backends are libraries that let ImGui render text and drawings by communicating with the graphics card.
Install Visual Studio Code, install recommended C++ extension packs, download or clone the project from GitHub, and open the chapter root to access the ImGui starter project.
Starting from the chapter start project, configure a CMake-based GUI with OpenGL, GLFW, ImGui, and ImPlot, install dependencies via the package tool, and build in VS Code.
Review the source files main.cpp, render, and render.cpp that set up a glfw window with an OpenGL backend and define window class with a render at 60 frames per second.
Learn to render an ImGui window with begin and end, understand stack behavior, and render Hello world using set next window pos and size with flags like no move.
Explore the official ImGui demo to see features such as main menu bar, tables, and buttons, with code you can copy, run, and customize using VS Code IntelliSense.
Design and implement an ImGui-based file explorer, splitting the draw into menu, content, actions, and filter, enabling directory navigation via selectable entries and extension-based counts.
Review key ImGui concepts from the first example, including separators, cursor shift, button interactions, same-line layout, selectable lists with blue highlights, and popup modals with open/end commands and matching names.
build a plotting tool with ImGui and the plot library to plot sine and cosine functions, move the view, and render colored functions; extend to user input for polynomial plots.
Create a function plotter with the ImPlot extension for ImGui to graph sine and cosine, using checkboxes to select functions and an enum-based mapping for evaluation.
We recap key GUI concepts from the course, including checkboxes for multi-select, begin plot and plot context creation, and options to disable legend, mouse input, and scrolling.
Implement a simple text editor in this chapter to type content, create and save files as text.txt, and load existing text files while showing the open file name and extension.
Create a text editor using a c-style char buffer and std::string for the file name, with memset initialization and ImGui popups for save and load.
Build a multi-line text editor with left line numbers using imgui, including a text buffer, line counting, and save-load file functionality with extensions.
Create and use a diff viewer to compare two files in a GUI, highlight differences in red, and copy lines between left and right panes to reach zero diff lines.
Explore a hands-on guide to building a file diff viewer in c++ with imgui, featuring side-by-side diffs, copy left/right, colored highlighting, and dynamic ui layout.
Explore imgui features, including a push style var for padding, rounding, and sizing defined by an enum, and create nested begin child windows with size, border, and text color helpers.
Build a simple paint tool that draws with colors and adjustable dot sizes, supports a color picker, and saves and reloads the canvas from a binary intermediate file format.
Develop a simple paint tool with C++ and ImGui, featuring an 800x600 drawing canvas, rgb color channels, brush size, and a save/load format with color buttons and a color picker.
explore drawing on a canvas with ImGui's window draw list, placing circles and rectangles at the cursor using an invisible button; add color, sliders, popups, and save/load to image files.
Build an interactive calendar tool in C++ with ImGui, using a month name dropdown. Define a serializable meeting type and a date map to store meetings.
Build a drawer calendar that iterates months and days, validates dates, and prints month names; highlight current date in blue and selected date in green, with pop-up to add meetings.
Build an interactive calendar UI in C++ with ImGui that lists meetings for the selected date. Support binary save/load and serialize/deserialize for meetings, and enable deleting by clicking.
Recap shows defining the next element and using pop item to fix widths inside a for loop, plus a combo box with a preview value and bullet text.
Implement a csv reader and writer to build a basic excel-like tool using c++ and imgui, including create new or load existing test.csv, edit cells, and adjust rows and columns.
Implement save and load buttons with popups for csv files and a clear button to reset the data vector, while handling save to csv and load from csv.
Explore ImGui's table api and integer sliders with min and max, see slider changes trigger actions, and learn per-column styling and navigation through rows and columns.
Define static constexpr constants for pi, circle radius, and hand lengths to render a wall clock with hour, minute, and second hands, strokes, inner circle, digital clock, and angles.
Review how to use the get window draw list to add circles and lines, and examine the get color function for element styling and ImU32 conversion from RGBA.
Master GUI Development with C++ and ImGui Through 10 Real-World Projects!
Want to build graphical applications in C++ without wrestling with complex UI frameworks? ImGui is your solution: fast, cross-platform, and perfect for tools, editors, and interactive applications.
What is ImGui?
ImGui is an immediate-mode GUI toolkit that stands out for its simplicity and efficiency:
Minimal Dependencies – Integrate into existing projects in minutes
Cross-Platform – Windows, Linux, macOS support
Rapid Development – Extensive widget library for fast iteration
High Performance – Low resource consumption
Industry-Proven – Used in Unreal Engine, Unity, and professional game studios
Active Community – Constant improvements and robust ecosystem
10 Real-World Projects You'll Build:
File Explorer – Navigate and manage file systems with a modern GUI
Function Plotter – Visualize mathematical functions using ImPlot
Text Editor – Build a functional editor with core features
File Diff Viewer – Compare and highlight differences between files
Simple Paint – Create a drawing application with color tools
Calendar with Appointments – Manage events with an intuitive interface
CSV Editor – Read, edit, and write CSV files with ease
Wall Clock – Design a digital clock display
Windows Desktop – Build customizable window management systems
Final Project – Combine all techniques into a comprehensive application
What You'll Master:
ImGui Fundamentals
Complete widget system (buttons, inputs, layouts, styling)
Event handling and user input management
Custom styling and themes
ImPlot for Visualization
Data plotting and charting
Interactive graphs
Professional CMake Setup
Modern project structure
Cross-platform build configuration
Perfect For:
C++ Developers who want to add GUI skills
Game Developers building editor tools and debug UIs
Tool Developers needing fast, efficient interfaces
Computer Science Students with C++ basics
Prerequisites: C++ fundamentals (functions, classes) and basic terminal knowledge
Why Choose ImGui?
Ideal for Tools – Perfect for debug UIs, editor tools, and rapid prototyping
Less Boilerplate – Immediate-mode means simpler code than traditional event systems
Industry Standard – Trusted by AAA game studios and professional developers
Fast Iteration – See changes instantly without complex build processes
Course Details:
7 hours of hands-on content – 59 lectures across 14 sections
10 complete projects – From beginner-friendly to advanced
Modern CMake workflow – Professional build setup included
All source code – Download and modify for your own projects
Build impressive C++ applications with a 30-day money-back guarantee!
See you in the course!