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;
83 class InstanceRenderer;
110 ImFont *
AddFont(
const std::string &name,
int size);
111 ImFont *
GetFont(
const std::string &name,
int size);
113 void AddGlyph(ImFont *font,
unsigned short glyph);
121 std::unique_ptr<InstanceRenderer> m_instanceRenderer;
125 char *m_ioIniFilename;
127 std::map<std::pair<std::string, int>, ImFont *> m_fonts;
128 std::map<ImFont *, std::pair<std::string, int>> m_im_fonts;
129 std::map<std::pair<std::string, int>,
PiFont> m_pi_fonts;
130 bool m_should_bake_fonts;
132 std::map<std::string, PiFont> m_font_definitions;
134 ImGuiStyle m_debugStyle;
135 bool m_debugStyleActive;
138 void BakeFont(
PiFont &font);
139 void AddFontDefinition(
const PiFont &font) { m_font_definitions[font.
name()] = font; }
143 int RadialPopupSelectMenu(
const ImVec2 center,
const char *popup_id,
int mouse_button,
const std::vector<ImTextureID> &tex_ids,
const std::vector<std::pair<ImVec2, ImVec2>> &uvs,
const std::vector<ImU32> &colors,
const std::vector<const char *> &tooltips,
unsigned int size,
unsigned int padding);
144 bool CircularSlider(
const ImVec2 ¢er,
float *v,
float v_min,
float v_max);
146 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);
147 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);
149 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);
151 void IncrementDrag(
const std::string &label,
int &v,
const int v_min,
const int v_max,
const std::string &format);
155 return ImGui::GetIO().WantCaptureMouse;
160 return ImGui::GetIO().WantCaptureKeyboard;
Definition PiGuiRenderer.h:13
InstanceRenderer * GetRenderer()
Definition PiGui.h:93
bool ProcessEvent(SDL_Event *event)
Definition PiGui.cpp:373
Instance()
Definition PiGui.cpp:197
ImFont * GetFont(const std::string &name, int size)
Definition PiGui.cpp:261
void RefreshFontsTexture()
Definition PiGui.cpp:331
ImFont * AddFont(const std::string &name, int size)
Definition PiGui.cpp:304
void AddGlyph(ImFont *font, unsigned short glyph)
Definition PiGui.cpp:274
void EndFrame()
Definition PiGui.cpp:420
void Uninit()
Definition PiGui.cpp:535
void Render()
Definition PiGui.cpp:429
void SetNormalStyle()
Definition PiGui.cpp:253
void Init(Graphics::Renderer *renderer)
Definition PiGui.cpp:339
void NewFrame()
Definition PiGui.cpp:380
void SetDebugStyle()
Definition PiGui.cpp:245
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:560
void addGlyph(unsigned short glyph)
Definition PiGui.cpp:566
PiFace(const std::string &ttfname, float sizefactor)
Definition PiGui.h:24
const std::vector< UsedRange > & used_ranges() const
Definition PiGui.h:33
const std::string & ttfname() const
Definition PiGui.h:28
void sortUsedRanges() const
Definition PiGui.cpp:581
PiFont()
Definition PiGui.h:58
const std::vector< PiFace > & faces() const
Definition PiGui.h:61
void describe() const
Definition PiGui.h:69
PiFont(const std::string &name)
Definition PiGui.h:53
int pixelsize() const
Definition PiGui.h:66
PiFont(const std::string &name, const std::vector< PiFace > &faces)
Definition PiGui.h:55
void setPixelsize(int pixelsize)
Definition PiGui.h:67
std::vector< PiFace > & faces()
Definition PiGui.h:62
const std::string & name() const
Definition PiGui.h:64
Definition RefCounted.h:11
Definition Background.h:14
Definition LuaBody.cpp:29
bool WantCaptureMouse()
Definition PiGui.h:153
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:223
std::vector< Graphics::Texture * > & GetSVGTextures()
Definition PiGui.cpp:33
void IncrementDrag(const std::string &label, int &v, const int v_min, const int v_max, const std::string &format)
Definition Widgets.cpp:321
ImTextureID RenderSVG(Graphics::Renderer *renderer, std::string svgFilename, int width, int height)
Definition PiGui.cpp:137
int RadialPopupSelectMenu(const ImVec2 center, const char *popup_id, int mouse_button, const std::vector< ImTextureID > &tex_ids, const std::vector< std::pair< ImVec2, ImVec2 > > &uvs, const std::vector< ImU32 > &colors, const std::vector< const char * > &tooltips, unsigned int size, unsigned int padding)
Definition Widgets.cpp:12
bool CircularSlider(const ImVec2 ¢er, float *v, float v_min, float v_max)
Definition Widgets.cpp:122
bool WantCaptureKeyboard()
Definition PiGui.h:158
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:281
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:160
void Output(const char *message, Args... args)
Definition utils.h:41