Update Emboss font preview alignment (#8013)

* Fix style preview size per resolution

(cherry picked from commit b67c4785f0d300b5615126ea1df1d518dd6d00b0)

* Align font preview to left. (closer to font name)

(cherry picked from commit eb9b8c0c2b112f0f7649e58f4f6d7977380b8442)

---------

Co-authored-by: Filip Sykala - NTB T15p <Filip.Sykala@Prusa3D.cz>
This commit is contained in:
Noisyfox 2025-01-22 10:01:54 +08:00 committed by GitHub
parent c68e640d03
commit 22dc0b1212
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 8 additions and 7 deletions

View file

@ -3598,7 +3598,7 @@ GuiCfg create_gui_configuration()
float space = line_height_with_spacing - line_height; float space = line_height_with_spacing - line_height;
const ImGuiStyle &style = ImGui::GetStyle(); const ImGuiStyle &style = ImGui::GetStyle();
cfg.max_style_name_width = ImGui::CalcTextSize("Maximal font name, extended").x; cfg.max_style_name_width = ImGui::CalcTextSize("Maximal style name..").x;
cfg.icon_width = static_cast<unsigned int>(std::ceil(line_height)); cfg.icon_width = static_cast<unsigned int>(std::ceil(line_height));
// make size pair number // make size pair number
@ -3692,11 +3692,11 @@ GuiCfg create_gui_configuration()
// "Text is to object" + radio buttons // "Text is to object" + radio buttons
cfg.height_of_volume_type_selector = separator_height + line_height_with_spacing + input_height; cfg.height_of_volume_type_selector = separator_height + line_height_with_spacing + input_height;
int max_style_image_width = static_cast<int>(std::round(cfg.max_style_name_width/2 - 2 * style.FramePadding.x)); int max_style_image_width = static_cast<int>(std::round(cfg.max_style_name_width - 2 * style.FramePadding.x));
int max_style_image_height = static_cast<int>(std::round(input_height)); int max_style_image_height = static_cast<int>(std::round(input_height));
cfg.max_style_image_size = Vec2i32(max_style_image_width, line_height); cfg.max_style_image_size = Vec2i32(max_style_image_width, line_height);
cfg.face_name_size = Vec2i32(cfg.input_width, line_height_with_spacing); cfg.face_name_size = Vec2i32(cfg.input_width, line_height_with_spacing);
cfg.face_name_texture_offset_x = cfg.face_name_size.x() + space; cfg.face_name_texture_offset_x = cfg.face_name_size.x() + style.WindowPadding.x + space;
cfg.max_tooltip_width = ImGui::GetFontSize() * 20.0f; cfg.max_tooltip_width = ImGui::GetFontSize() * 20.0f;

View file

@ -142,8 +142,9 @@ void CreateFontImageJob::finalize(bool canceled, std::exception_ptr &)
glsafe(::glBindTexture(target, m_input.texture_id)); glsafe(::glBindTexture(target, m_input.texture_id));
GLsizei w = m_tex_size.x(), h = m_tex_size.y(); GLsizei w = m_tex_size.x(), h = m_tex_size.y();
GLint xoffset = m_input.size.x() - m_tex_size.x(), // arrange right GLint xoffset = 0; // align to left
yoffset = m_input.size.y() * m_input.index; // GLint xoffset = m_input.size.x() - m_tex_size.x(); // align right
GLint yoffset = m_input.size.y() * m_input.index;
glsafe(::glTexSubImage2D(target, m_input.level, xoffset, yoffset, w, h, glsafe(::glTexSubImage2D(target, m_input.level, xoffset, yoffset, w, h,
m_input.format, m_input.type, m_result.data())); m_input.format, m_input.type, m_result.data()));

View file

@ -42,12 +42,12 @@ void CreateFontStyleImagesJob::process(Ctl &ctl)
// create image description // create image description
StyleManager::StyleImage &image = m_images[index]; StyleManager::StyleImage &image = m_images[index];
BoundingBox &bounding_box = image.bounding_box; BoundingBox &bounding_box = image.bounding_box;
for (ExPolygon &shape : shapes) for (const ExPolygon &shape : shapes)
bounding_box.merge(BoundingBox(shape.contour.points)); bounding_box.merge(BoundingBox(shape.contour.points));
for (ExPolygon &shape : shapes) shape.translate(-bounding_box.min); for (ExPolygon &shape : shapes) shape.translate(-bounding_box.min);
// calculate conversion from FontPoint to screen pixels by size of font // calculate conversion from FontPoint to screen pixels by size of font
double scale = get_text_shape_scale(item.prop, *item.font.font_file); double scale = get_text_shape_scale(item.prop, *item.font.font_file) * m_input.ppm;
scales[index] = scale; scales[index] = scale;
//double scale = font_prop.size_in_mm * SCALING_FACTOR; //double scale = font_prop.size_in_mm * SCALING_FACTOR;