This is a test framework that uses Raylib and ImGui together to help test and develop concepts. It is made using C++ because it uses classes for windows and views.
The idea is you add code to places in the test frame to get something showing quickly with access to common features such as resources, cameras, and other tools.
- Make sure you have the submodules
- Make sure that you have ImGui in raylibExtras/imgui
- Be sure to use the docking branch of ImGui
- Download from https://github.com/ocornut/imgui/tree/docking
- Get the premake5 for your platform
- Download https://premake.github.io/download
- Don't get Premake4
- Run premake
- Batch file for visual studio 2019 is included
- Other targets will need the command line (premake5 gmake)
- Build
The testframe has two main concepts Views and Windows. Each exist to display data and work with each other.
Views are shown in the background window in the area that is not covered by docked windows. There is only ever one view up at a time. Each View uses a render texture so you can draw to it as if it was a little screen. A rectangle is passed to the view for the vissible area. Views are based on the MainView class and have an OnShow virtual method where you can put drawing code. You can have as many view types as you want and setup the View menu to swap between them.
This is the default view and is 3d. It sets up a first person camera, skybox and ground grid by default.
This is a 2d View used for sprite-like drawing.
Windows are ImGui windows that are docked around the view. They are used to display information about the view. They are based on the UIWindow base class and have a virtual OnShow method that is passed the view. You can use this to get data from the view and display it. There are two default Windows, but you can add as many as you want. The Window menu will display the status of all known windows.
This shows the raylib log output. Has filters for type and by text to search for specific issues in the log.
This shows data from the view. It is meant to be extended with more info.
Testframe is setup with RLAssets, FPCamera, TPCamera and other items from RaylibExtras. There are also several utilities to help with drawing in draw_utils.h
The tools menu has several things to help debug ImGui.
This will start an ImGui Item Picker, the next gui element you click on will trigger a breakpoint in the debugger so you can see where in the callstack the code that makes the GUI is.
This is a realtime style editor
This shows debug info about ImGui
This is the ImGui Demo window
The ImGui version