Only regenerate bed triangles if actually changed (#3039)

* Remove unused bed texture

* Only regenerate bed triangles if actually changed
This commit is contained in:
Noisyfox 2023-12-09 16:40:04 +08:00 committed by GitHub
parent d24aef36ae
commit f598a1209a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 5 deletions

View file

@ -609,7 +609,7 @@ void Bed3D::render_system(GLCanvas3D& canvas, const Transform3d& view_matrix, co
}*/
//BBS: add part plate related logic
void Bed3D::update_model_offset() const
void Bed3D::update_model_offset()
{
// move the model so that its origin (0.0, 0.0, 0.0) goes into the bed shape center and a bit down to avoid z-fighting with the texture quad
Vec3d shift = m_extended_bounding_box.center();
@ -626,11 +626,14 @@ void Bed3D::update_model_offset() const
// update extended bounding box
const_cast<BoundingBoxf3&>(m_extended_bounding_box) = calc_extended_bounding_box();
m_triangles.reset();
}
void Bed3D::update_bed_triangles()
{
m_triangles.reset();
if (m_triangles.is_initialized()) {
return;
}
Vec3d shift = m_extended_bounding_box.center();
shift(2) = -0.03;
@ -708,7 +711,7 @@ void Bed3D::render_custom(GLCanvas3D& canvas, const Transform3d& view_matrix, co
void Bed3D::render_default(bool bottom, const Transform3d& view_matrix, const Transform3d& projection_matrix)
{
m_texture.reset();
// m_texture.reset();
update_bed_triangles();

View file

@ -98,7 +98,7 @@ private:
//Polygon m_polygon;
GLModel m_triangles;
//GLModel m_gridlines;
GLTexture m_texture;
// GLTexture m_texture;
// temporary texture shown until the main texture has still no levels compressed
//GLTexture m_temp_texture;
GLModel m_model;
@ -154,7 +154,7 @@ private:
//BBS: add partplate related logic
// Calculate an extended bounding box from axes and current model for visualization purposes.
BoundingBoxf3 calc_extended_bounding_box(bool consider_model_offset = true) const;
void update_model_offset() const;
void update_model_offset();
//BBS: with offset
void update_bed_triangles();
static std::tuple<Type, std::string, std::string> detect_type(const Pointfs& shape);