mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-26 16:04:34 +00:00
71 lines
2.5 KiB
C++
71 lines
2.5 KiB
C++
#ifndef __TRACYIMGUI_HPP__
|
|
#define __TRACYIMGUI_HPP__
|
|
|
|
#ifdef _MSC_VER
|
|
# pragma warning( disable: 4244 ) // conversion from don't care to whatever, possible loss of data
|
|
#endif
|
|
|
|
#include "../imgui/imgui.h"
|
|
#include "../imgui/imgui_internal.h"
|
|
|
|
#if !IMGUI_DEFINE_MATH_OPERATORS
|
|
static inline ImVec2 operator+( const ImVec2& l, const ImVec2& r ) { return ImVec2( l.x + r.x, l.y + r.y ); }
|
|
static inline ImVec2 operator-( const ImVec2& l, const ImVec2& r ) { return ImVec2( l.x - r.x, l.y - r.y ); }
|
|
#endif
|
|
|
|
namespace tracy
|
|
{
|
|
|
|
static inline void TextCentered( const char* text )
|
|
{
|
|
const auto tw = ImGui::CalcTextSize( text ).x;
|
|
ImGui::SetCursorPosX( ( ImGui::GetWindowWidth() - tw ) * 0.5f );
|
|
ImGui::TextUnformatted( text );
|
|
}
|
|
|
|
static inline void TextColoredUnformatted( const ImVec4& col, const char* text )
|
|
{
|
|
ImGui::PushStyleColor( ImGuiCol_Text, col );
|
|
ImGui::TextUnformatted( text );
|
|
ImGui::PopStyleColor();
|
|
}
|
|
|
|
static inline void TextDisabledUnformatted( const char* begin, const char* end = nullptr )
|
|
{
|
|
ImGui::PushStyleColor( ImGuiCol_Text, GImGui->Style.Colors[ImGuiCol_TextDisabled] );
|
|
ImGui::TextUnformatted( begin, end );
|
|
ImGui::PopStyleColor();
|
|
}
|
|
|
|
static inline void TextFocused( const char* label, const char* value )
|
|
{
|
|
TextDisabledUnformatted( label );
|
|
ImGui::SameLine();
|
|
ImGui::TextUnformatted( value );
|
|
}
|
|
|
|
static inline void DrawWaitingDots( double time )
|
|
{
|
|
ImGui::TextUnformatted( "" );
|
|
auto draw = ImGui::GetWindowDrawList();
|
|
const auto wpos = ImGui::GetWindowPos();
|
|
const auto ty = ImGui::GetFontSize();
|
|
const auto h = ImGui::GetCursorPosY() - ty * 0.5f;
|
|
const auto w = ImGui::GetWindowWidth();
|
|
draw->AddCircleFilled( wpos + ImVec2( w * 0.5f - ty, h ), ty * ( 0.15f + 0.2f * ( pow( cos( time * 3.5f + 0.3f ), 16.f ) ) ), 0xFFBBBBBB, 12 );
|
|
draw->AddCircleFilled( wpos + ImVec2( w * 0.5f , h ), ty * ( 0.15f + 0.2f * ( pow( cos( time * 3.5f ), 16.f ) ) ), 0xFFBBBBBB, 12 );
|
|
draw->AddCircleFilled( wpos + ImVec2( w * 0.5f + ty, h ), ty * ( 0.15f + 0.2f * ( pow( cos( time * 3.5f - 0.3f ), 16.f ) ) ), 0xFFBBBBBB, 12 );
|
|
}
|
|
|
|
static inline bool SmallCheckbox( const char* label, bool* var )
|
|
{
|
|
ImGui::PushStyleVar( ImGuiStyleVar_FramePadding, ImVec2( 0, 0 ) );
|
|
auto ret = ImGui::Checkbox( label, var );
|
|
ImGui::PopStyleVar();
|
|
return ret;
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|