8 #include "imgui/imgui.h"
12 #include <unordered_set>
28 const std::string &
ttfname()
const {
return m_ttfname; }
33 const std::vector<UsedRange> &
used_ranges()
const {
return m_used_ranges; }
42 std::string m_ttfname;
45 std::unordered_set<unsigned short> m_invalid_glyphs;
46 mutable std::vector<UsedRange> m_used_ranges;
48 ImVector<ImWchar> m_imgui_ranges;
61 const std::vector<PiFace> &
faces()
const {
return m_faces; }
62 std::vector<PiFace> &
faces() {
return m_faces; }
64 const std::string &
name()
const {
return m_name; }
73 Output(
"- %s %f\n", face.ttfname().c_str(), face.sizefactor());
79 std::vector<PiFace> m_faces;
106 ImFont *
AddFont(
const std::string &name,
int size);
107 ImFont *
GetFont(
const std::string &name,
int size);
109 void AddGlyph(ImFont *font,
unsigned short glyph);
118 std::map<std::pair<std::string, int>, ImFont *> m_fonts;
119 std::map<ImFont *, std::pair<std::string, int>> m_im_fonts;
120 std::map<std::pair<std::string, int>,
PiFont> m_pi_fonts;
121 bool m_should_bake_fonts;
123 std::map<std::string, PiFont> m_font_definitions;
125 ImGuiStyle m_debugStyle;
126 bool m_debugStyleActive;
129 void BakeFont(
PiFont &font);
130 void AddFontDefinition(
const PiFont &font) { m_font_definitions[font.
name()] = font; }
134 int RadialPopupSelectMenu(
const ImVec2 ¢er, std::string popup_id,
int mouse_button, std::vector<ImTextureID> tex_ids, std::vector<std::pair<ImVec2, ImVec2>> uvs,
unsigned int size, std::vector<std::string> tooltips);
135 bool CircularSlider(
const ImVec2 ¢er,
float *v,
float v_min,
float v_max);
137 bool LowThrustButton(
const char *label,
const ImVec2 &size_arg,
int thrust_level,
const ImVec4 &bg_col,
int frame_padding, ImColor gauge_fg, ImColor gauge_bg);
138 bool ButtonImageSized(
ImTextureID user_texture_id,
const ImVec2 &size,
const ImVec2 &imgSize,
const ImVec2 &uv0,
const ImVec2 &uv1,
int frame_padding,
const ImVec4 &bg_col,
const ImVec4 &tint_col);
140 void ThrustIndicator(
const std::string &id_string,
const ImVec2 &size,
const ImVec4 &thrust,
const ImVec4 &velocity,
const ImVec4 &bg_col,
int frame_padding, ImColor vel_fg, ImColor vel_bg, ImColor thrust_fg, ImColor thrust_bg);
142 void IncrementDrag(
const std::string &label,
int &v,
const int v_min,
const int v_max,
const std::string &format);
146 return ImGui::GetIO().WantCaptureMouse;
151 return ImGui::GetIO().WantCaptureKeyboard;
void * ImTextureID
Definition: ModelSpinner.h:14
Definition: Renderer.h:39
bool ProcessEvent(SDL_Event *event)
Definition: PiGui.cpp:343
Instance()
Definition: PiGui.cpp:163
ImFont * GetFont(const std::string &name, int size)
Definition: PiGui.cpp:227
void RefreshFontsTexture()
Definition: PiGui.cpp:297
ImFont * AddFont(const std::string &name, int size)
Definition: PiGui.cpp:270
void AddGlyph(ImFont *font, unsigned short glyph)
Definition: PiGui.cpp:240
void EndFrame()
Definition: PiGui.cpp:370
void Uninit()
Definition: PiGui.cpp:500
void Render()
Definition: PiGui.cpp:397
void SetNormalStyle()
Definition: PiGui.cpp:219
void Init(Graphics::Renderer *renderer)
Definition: PiGui.cpp:306
void NewFrame()
Definition: PiGui.cpp:350
void SetDebugStyle()
Definition: PiGui.cpp:211
std::pair< uint16_t, uint16_t > UsedRange
Definition: PiGui.h:23
float sizefactor() const
Definition: PiGui.h:30
bool isValidGlyph(unsigned short glyph) const
Definition: PiGui.cpp:524
void addGlyph(unsigned short glyph)
Definition: PiGui.cpp:530
PiFace(const std::string &ttfname, float sizefactor)
Definition: PiGui.h:24
const std::vector< UsedRange > & used_ranges() const
Definition: PiGui.h:33
void sortUsedRanges() const
Definition: PiGui.cpp:545
const std::string & ttfname() const
Definition: PiGui.h:28
PiFont()
Definition: PiGui.h:58
const std::string & name() const
Definition: PiGui.h:64
void describe() const
Definition: PiGui.h:69
PiFont(const std::string &name)
Definition: PiGui.h:53
int pixelsize() const
Definition: PiGui.h:66
std::vector< PiFace > & faces()
Definition: PiGui.h:62
PiFont(const std::string &name, const std::vector< PiFace > &faces)
Definition: PiGui.h:55
void setPixelsize(int pixelsize)
Definition: PiGui.h:67
const std::vector< PiFace > & faces() const
Definition: PiGui.h:61
Definition: RefCounted.h:11
Definition: Background.h:13
Definition: LuaBody.cpp:28
int RadialPopupSelectMenu(const ImVec2 ¢er, std::string popup_id, int mouse_button, std::vector< ImTextureID > tex_ids, std::vector< std::pair< ImVec2, ImVec2 >> uvs, unsigned int size, std::vector< std::string > tooltips)
Definition: Widgets.cpp:11
bool WantCaptureMouse()
Definition: PiGui.h:144
bool LowThrustButton(const char *label, const ImVec2 &size_arg, int thrust_level, const ImVec4 &bg_col, int frame_padding, ImColor gauge_fg, ImColor gauge_bg)
Definition: Widgets.cpp:207
std::vector< Graphics::Texture * > & GetSVGTextures()
Definition: PiGui.cpp:31
void IncrementDrag(const std::string &label, int &v, const int v_min, const int v_max, const std::string &format)
Definition: Widgets.cpp:305
ImTextureID RenderSVG(Graphics::Renderer *renderer, std::string svgFilename, int width, int height)
Definition: PiGui.cpp:56
bool CircularSlider(const ImVec2 ¢er, float *v, float v_min, float v_max)
Definition: Widgets.cpp:106
bool WantCaptureKeyboard()
Definition: PiGui.h:149
bool ButtonImageSized(ImTextureID user_texture_id, const ImVec2 &size, const ImVec2 &imgSize, const ImVec2 &uv0, const ImVec2 &uv1, int frame_padding, const ImVec4 &bg_col, const ImVec4 &tint_col)
Definition: Widgets.cpp:265
void ThrustIndicator(const std::string &id_string, const ImVec2 &size, const ImVec4 &thrust, const ImVec4 &velocity, const ImVec4 &bg_col, int frame_padding, ImColor vel_fg, ImColor vel_bg, ImColor thrust_fg, ImColor thrust_bg)
Definition: Widgets.cpp:144
void Output(const char *message, Args... args)
Definition: utils.h:41