//
// debug_hud.cpp
// imguiex
# include <stdio.h>
# include "debug_hud.h"
# include "imgui.h"
void DebugHUD_InitDefaults ( DebugHUD * hud )
{
hud - > show_demo_window = true ;
hud - > show_another_window = true ;
hud - > rotation_speed = 15.0f ;
hud - > cubeColor1 [ 0 ] = 0.4f ;
hud - > cubeColor1 [ 1 ] = 0.4f ;
hud - > cubeColor1 [ 2 ] = 1.0f ;
hud - > cubeColor1 [ 3 ] = 1.0f ;
hud - > cubeColor2 [ 0 ] = 1.0f ;
hud - > cubeColor2 [ 1 ] = 0.4f ;
hud - > cubeColor2 [ 2 ] = 0.4f ;
hud - > cubeColor2 [ 3 ] = 1.0f ;
hud - > clearColor [ 0 ] = 0.45f ;
hud - > clearColor [ 1 ] = 0.55f ;
hud - > clearColor [ 2 ] = 0.60f ;
hud - > clearColor [ 3 ] = 1.00f ;
}
void DebugHUD_DoInterface ( DebugHUD * hud )
{
// 1. Show a simple window.
// Tip: if we don't call ImGui::Begin()/ImGui::End() the widgets automatically appears in a window called "Debug".
{
static float f = 0.0f ;
static int counter = 0 ;
ImGui : : Text ( " Hello, world! " ) ; // Display some text (you can use a format string too)
ImGui : : SliderFloat ( " float " , & f , 0.0f , 1.0f ) ; // Edit 1 float using a slider from 0.0f to 1.0f
ImGui : : ColorEdit3 ( " clear color " , hud - > clearColor ) ; // Edit 3 floats representing a color
ImGui : : Checkbox ( " Demo Window " , & hud - > show_demo_window ) ; // Edit bools storing our windows open/close state
ImGui : : Checkbox ( " Another Window " , & hud - > show_another_window ) ;
if ( ImGui : : Button ( " Button " ) ) // Buttons return true when clicked (NB: most widgets return true when edited/activated)
counter + + ;
ImGui : : SameLine ( ) ;
ImGui : : Text ( " counter = %d " , counter ) ;
ImGui : : Text ( " Application average %.3f ms/frame (%.1f FPS) " , 1000.0f / ImGui : : GetIO ( ) . Framerate , ImGui : : GetIO ( ) . Framerate ) ;
}
// 2. Show another simple window. In most cases you will use an explicit Begin/End pair to name your windows.
if ( hud - > show_another_window )
{
ImGui : : Begin ( " Another Window " , & hud - > show_another_window ) ;
ImGui : : Text ( " Hello from another window! " ) ;
ImGui : : ColorEdit3 ( " Cube 1 Color " , hud - > cubeColor1 ) ;
ImGui : : ColorEdit3 ( " Cube 2 Color " , hud - > cubeColor2 ) ;
ImGui : : SliderFloat ( " Rotation Speed " , & hud - > rotation_speed , 0.0f , 200.0f ) ;
if ( ImGui : : Button ( " Close Me " ) )
hud - > show_another_window = false ;
ImGui : : End ( ) ;
}
// 3. Show the ImGui demo window. Most of the sample code is in ImGui::ShowDemoWindow(). Read its code to learn more about Dear ImGui!
if ( hud - > show_demo_window )
{
ImGui : : SetNextWindowPos ( ImVec2 ( 650 , 20 ) , ImGuiCond_FirstUseEver ) ; // Normally user code doesn't need/want to call this because positions are saved in .ini file anyway. Here we just want to make the demo initial state a bit more friendly!
ImGui : : ShowDemoWindow ( & hud - > show_demo_window ) ;
}
}