TestFrame - This is a test framework that uses Raylib and ImGui together to help test and develop concepts

Raylib/ImGui TestFrame

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.

image

Building

  1. Make sure you have the submodules
  2. Make sure that you have ImGui in raylibExtras/imgui
    1. Be sure to use the docking branch of ImGui
    2. Download from https://github.com/ocornut/imgui/tree/docking
  3. Get the premake5 for your platform
    1. Download https://premake.github.io/download
    2. Don't get Premake4
  4. Run premake
    1. Batch file for visual studio 2019 is included
    2. Other targets will need the command line (premake5 gmake)
  5. Build

What this does

The testframe has two main concepts Views and Windows. Each exist to display data and work with each other.

Views

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.

SceneView

This is the default view and is 3d. It sets up a first person camera, skybox and ground grid by default.

SpriteView

This is a 2d View used for sprite-like drawing.

Windows

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.

LogWindow

This shows the raylib log output. Has filters for type and by text to search for specific issues in the log.

Inspector

This shows data from the view. It is meant to be extended with more info.

Other services

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

Tools

The tools menu has several things to help debug ImGui.

Item Picker

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.

Style Editor

This is a realtime style editor

Metrics

This shows debug info about ImGui

Demo

This is the ImGui Demo window

About

The ImGui version

Owner
Jeffery Myers
Sr. Software Developer at Blizzard Entertainment (personal account)
Jeffery Myers
Similar Resources

Network utility tool which enables to prototype or test network things.

netsck netsck is a network utility tool which is developed to prototype or test network things. It provides a shell inside which runs javascript engin

May 29, 2022

Project basicly find the test that fails some code.

Stress Test project Overview many and many times in competitve programming when you have a solution got WA(wrong answer) and you do not know why and c

Feb 15, 2022

Googletest - Google Testing and Mocking Framework

GoogleTest OSS Builds Status Announcements Release 1.10.x Release 1.10.x is now available. Coming Soon Post 1.10.x googletest will follow Abseil Live

Dec 8, 2022

A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant)

lest – lest errors escape testing This tiny C++11 test framework is based on ideas and examples by Kevlin Henney [1,2] and on ideas found in the CATCH

Nov 26, 2022

Modern c++17 unit testing framework on Microsoft Windows, Apple macOS, Linux, iOS and android.

Modern c++17 unit testing framework on Microsoft Windows, Apple macOS, Linux, iOS and android.

tunit Modern c++17 unit testing framework on Windows, macOS, Linux, iOS and android. Continuous Integration build status Operating system Status Windo

Apr 5, 2022

The fastest feature-rich C++11/14/17/20 single-header testing framework

The fastest feature-rich C++11/14/17/20 single-header testing framework

master branch Windows All dev branch Windows All doctest is a new C++ testing framework but is by far the fastest both in compile times (by orders of

Dec 1, 2022

C++ xUnit-like testing framework without macros

tst C++ testing framework. Installation, documentation, tutorials See WiKi. Features xUnit-like concepts minimal use of preprocessor macros declarativ

Sep 26, 2022

c++ testing framework

iutest iutest - iris unit test framework Welcome to the iutest iutest is framework for writing C++ tests. Features An XUnit test framework. Header onl

Sep 12, 2022

UT: C++20 μ(micro)/Unit Testing Framework

UT: C++20 μ(micro)/Unit Testing Framework

"If you liked it then you "should have put a"_test on it", Beyonce rule UT / μt | Motivation | Quick Start | Overview | Tutorial | Examples | User Gui

Dec 3, 2022
Comments
  • Fix open/save dialog

    Fix open/save dialog

    fixed the string processing used for the open/save dialogs (for windows) they pretty much didnt work at all because windows expects wchar_t instead of char

Related tags
End to end test framework designed for Juce applications

JUCE End to End test framework What is it? This package provides a mechanism to end-to-end test a JUCE application Prerequisites CMake. Must be 3.18 o

Nov 28, 2022
Various Framework to do Unit Test in C++
Various Framework to do Unit Test in C++

Unit Test in C++ There are many frameworks to performs unit test in C++, we will present the most popular ones and show how to use them. The testing f

Nov 18, 2021
Handy C++ test framework

C++ Voyager Test Framework Voyager is a simple and handy C++ Unit Test framework. It is designed to be beautiful and expressive both. Try it to feel i

Mar 16, 2022
Upp11 - C++11 lightweight single header unit test framework

upp11 Lightweight C++11 single header unit test framework To use framework: Copy upp11.h in you project dir. Create unit test source files or modify e

Apr 4, 2019
A tool to help in testing client/server robustness in the presence of malformed data.

Tool to assist in testing robustness of network-attached services in the presence of malformed data.

Aug 27, 2022
An area to test reading in ATLAS xAOD format and writing out to Parquet

xaod_to_parquet An area to test reading in ATLAS xAOD format and writing out to Parquet Getting the Code Clone the repository with the --recursive fla

Nov 19, 2021
A dynamic mock tool for C/C++ unit test on Linux&MacOS X86_64

lmock 接口 替换一个函数,修改机器指令,用新函数替换旧函数,支持全局函数(包括第三方和系统函数)、成员函数(包括静态和虚函数)

Nov 22, 2022
PlatformIO + BL602 Bouffalo Arduino Core Test
 PlatformIO + BL602 Bouffalo Arduino Core Test

PlatformIO + BL602 Bouffalo Arduino Core Test Description Uses A custom extension of the PlatformIO SiFive Platform (https://github.com/maxgerhardt/pl

Nov 25, 2022
A test showing a flipped bit in a file encrypted on two different machines

ChaCha ASM Test I have observed that the ChaCha cipher may have very rarely divergent code paths for AVX vs. SSE. I have seen this in earlier CryptoPP

Dec 6, 2021
A tool to test if a shared library is dlopen'ble

A tool to test if a shared library is dlopen'ble

Oct 17, 2021