[Fix] Created get_text_width for menu button centering.
This commit is contained in:
parent
666b4f554b
commit
30ae57d0ba
@ -116,3 +116,11 @@ void TextRenderer::render_text(const char* text, float x, float y, float scale,
|
|||||||
glBindVertexArray(0);
|
glBindVertexArray(0);
|
||||||
glBindTexture(GL_TEXTURE_2D, 0);
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float TextRenderer::get_text_width(const char* text, float scale) {
|
||||||
|
float width = 0.0f;
|
||||||
|
for(const char* p = text; *p; p++) {
|
||||||
|
width += (_chars[*p].advance >> 6) * scale;
|
||||||
|
}
|
||||||
|
return width;
|
||||||
|
}
|
||||||
|
|||||||
@ -22,6 +22,8 @@ public:
|
|||||||
|
|
||||||
void load_font(const char* font_path, unsigned int font_size);
|
void load_font(const char* font_path, unsigned int font_size);
|
||||||
void render_text(const char* text, float x, float y, float scale, const Color& color);
|
void render_text(const char* text, float x, float y, float scale, const Color& color);
|
||||||
|
float get_text_width(const char* text, float scale);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Shader* _txt_shader;
|
Shader* _txt_shader;
|
||||||
|
|||||||
@ -113,11 +113,10 @@ void MainMenu::render(ShapeRenderer* shape_renderer, TextRenderer* txt_renderer)
|
|||||||
button.rect.h, button_color);
|
button.rect.h, button_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/* Draw button text centered. */
|
||||||
* Draw button text centered.
|
float text_width = txt_renderer->get_text_width(button.label.c_str(), 1.0f);
|
||||||
* TODO: Calculate text width for perfect centering.
|
float text_x = button.rect.x + (button.rect.w - text_width) / 2.0f;
|
||||||
*/
|
txt_renderer->render_text(button.label.c_str(), text_x,
|
||||||
txt_renderer->render_text(button.label.c_str(), button.rect.x + 50,
|
|
||||||
button.rect.y + 18, 1.0f, text_color);
|
button.rect.y + 18, 1.0f, text_color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,7 +15,6 @@ public:
|
|||||||
vfs_root(nullptr),
|
vfs_root(nullptr),
|
||||||
is_vfs_a_copy(false) {}
|
is_vfs_a_copy(false) {}
|
||||||
|
|
||||||
/* TODO: Implement recursive deletion of vfs_root. */
|
|
||||||
~Machine(void); /* Clean up VFS tree. */
|
~Machine(void); /* Clean up VFS tree. */
|
||||||
|
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user