mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-12 01:07:57 -06:00
FIX: texture is black when plate name is all space
Change-Id: I73962df92592aba7921a6d481fe0951a93c27455 (cherry picked from commit 2737c1d0b46c1ace30978412462cc37d03925685)
This commit is contained in:
parent
4dd068b505
commit
d4e7cc926f
1 changed files with 22 additions and 11 deletions
|
@ -435,10 +435,6 @@ void PartPlate::calc_vertex_for_plate_name(GLTexture &texture, GeometryBuffer &b
|
||||||
auto triangles = triangulate_expolygon_2f(poly, NORMALS_UP);
|
auto triangles = triangulate_expolygon_2f(poly, NORMALS_UP);
|
||||||
if (!buffer.set_from_triangles(triangles, GROUND_Z)) BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << "Unable to generate geometry buffers for icons\n";
|
if (!buffer.set_from_triangles(triangles, GROUND_Z)) BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << "Unable to generate geometry buffers for icons\n";
|
||||||
|
|
||||||
if (m_plate_name_vbo_id > 0) {
|
|
||||||
glsafe(::glDeleteBuffers(1, &m_plate_name_vbo_id));
|
|
||||||
m_plate_name_vbo_id = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -474,10 +470,6 @@ void PartPlate::calc_vertex_for_plate_name_edit_icon(GLTexture *texture, int ind
|
||||||
if (!buffer.set_from_triangles(triangles, GROUND_Z))
|
if (!buffer.set_from_triangles(triangles, GROUND_Z))
|
||||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << "Unable to generate geometry buffers for icons\n";
|
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << "Unable to generate geometry buffers for icons\n";
|
||||||
}
|
}
|
||||||
if (m_plate_name_edit_vbo_id > 0) {
|
|
||||||
glsafe(::glDeleteBuffers(1, &m_plate_name_edit_vbo_id));
|
|
||||||
m_plate_name_edit_vbo_id = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PartPlate::calc_vertex_for_icons(int index, GeometryBuffer &buffer)
|
void PartPlate::calc_vertex_for_icons(int index, GeometryBuffer &buffer)
|
||||||
|
@ -842,12 +834,28 @@ void PartPlate::render_plate_name_texture(int position_id, int tex_coords_id)
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (m_name_texture.get_id() == 0 || m_name_change) {
|
if (m_name_change == true) {
|
||||||
m_name_change = false;
|
m_name_change = false;
|
||||||
|
if (m_plate_name_vbo_id > 0) {
|
||||||
|
glsafe(::glDeleteBuffers(1, &m_plate_name_vbo_id));
|
||||||
|
m_plate_name_vbo_id = 0;
|
||||||
|
}
|
||||||
|
if (m_plate_name_edit_vbo_id > 0) {
|
||||||
|
glsafe(::glDeleteBuffers(1, &m_plate_name_edit_vbo_id));
|
||||||
|
m_plate_name_edit_vbo_id = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (m_plate_name_vbo_id==0) {
|
||||||
if (generate_plate_name_texture()) {
|
if (generate_plate_name_texture()) {
|
||||||
calc_vertex_for_plate_name(m_name_texture, m_plate_name_icon);
|
calc_vertex_for_plate_name(m_name_texture, m_plate_name_icon);
|
||||||
calc_vertex_for_plate_name_edit_icon(&m_name_texture, 0, m_plate_name_edit_icon);
|
calc_vertex_for_plate_name_edit_icon(&m_name_texture, 0, m_plate_name_edit_icon);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if (m_plate_name_edit_vbo_id==0) {
|
||||||
|
calc_vertex_for_plate_name_edit_icon(nullptr, 0, m_plate_name_edit_icon);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_plate_name_vbo_id == 0 && m_plate_name_icon.get_vertices_data_size() > 0) {
|
if (m_plate_name_vbo_id == 0 && m_plate_name_icon.get_vertices_data_size() > 0) {
|
||||||
|
@ -1682,6 +1690,9 @@ bool PartPlate::generate_plate_name_texture()
|
||||||
wxString cur_plate_name = from_u8(m_name);
|
wxString cur_plate_name = from_u8(m_name);
|
||||||
wxGCDC dc;
|
wxGCDC dc;
|
||||||
wxString limitTextWidth = wxControl::Ellipsize(cur_plate_name, dc, wxELLIPSIZE_END, bed_width);
|
wxString limitTextWidth = wxControl::Ellipsize(cur_plate_name, dc, wxELLIPSIZE_END, bed_width);
|
||||||
|
if (limitTextWidth.Length()==0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
// generate m_name_texture texture from m_name with generate_from_text_string
|
// generate m_name_texture texture from m_name with generate_from_text_string
|
||||||
m_name_texture.reset();
|
m_name_texture.reset();
|
||||||
auto * font = &Label::Head_32;
|
auto * font = &Label::Head_32;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue