Another small refactoring
This commit is contained in:
parent
349dd60940
commit
5e4ba27106
2 changed files with 34 additions and 35 deletions
|
@ -441,18 +441,7 @@ void GCodeViewer::refresh(const GCodeProcessor::Result& gcode_result, const std:
|
||||||
// update buffers' render paths
|
// update buffers' render paths
|
||||||
refresh_render_paths(false, false);
|
refresh_render_paths(false, false);
|
||||||
|
|
||||||
if (Slic3r::get_logging_level() >= 5) {
|
log_memory_used("Refreshed G-code extrusion paths, ");
|
||||||
long long paths_size = 0;
|
|
||||||
for (const TBuffer& buffer : m_buffers) {
|
|
||||||
paths_size += SLIC3R_STDVEC_MEMSIZE(buffer.paths, Path);
|
|
||||||
}
|
|
||||||
long long layers_zs_size = SLIC3R_STDVEC_MEMSIZE(m_layers_zs, double);
|
|
||||||
long long roles_size = SLIC3R_STDVEC_MEMSIZE(m_roles, Slic3r::ExtrusionRole);
|
|
||||||
long long extruder_ids_size = SLIC3R_STDVEC_MEMSIZE(m_extruder_ids, unsigned char);
|
|
||||||
BOOST_LOG_TRIVIAL(trace) << "Refreshed G-code extrusion paths, "
|
|
||||||
<< format_memsize_MB(paths_size + layers_zs_size + roles_size + extruder_ids_size)
|
|
||||||
<< log_memory_info();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GCodeViewer::reset()
|
void GCodeViewer::reset()
|
||||||
|
@ -1293,26 +1282,15 @@ void GCodeViewer::load_toolpaths(const GCodeProcessor::Result& gcode_result)
|
||||||
std::sort(m_extruder_ids.begin(), m_extruder_ids.end());
|
std::sort(m_extruder_ids.begin(), m_extruder_ids.end());
|
||||||
m_extruder_ids.erase(std::unique(m_extruder_ids.begin(), m_extruder_ids.end()), m_extruder_ids.end());
|
m_extruder_ids.erase(std::unique(m_extruder_ids.begin(), m_extruder_ids.end()), m_extruder_ids.end());
|
||||||
|
|
||||||
if (Slic3r::get_logging_level() >= 5) {
|
long long vertices_size = 0;
|
||||||
long long vertices_size = 0;
|
for (size_t i = 0; i < vertices.size(); ++i) {
|
||||||
for (size_t i = 0; i < vertices.size(); ++i) {
|
vertices_size += SLIC3R_STDVEC_MEMSIZE(vertices[i], float);
|
||||||
vertices_size += SLIC3R_STDVEC_MEMSIZE(vertices[i], float);
|
|
||||||
}
|
|
||||||
long long indices_size = 0;
|
|
||||||
for (size_t i = 0; i < indices.size(); ++i) {
|
|
||||||
indices_size += SLIC3R_STDVEC_MEMSIZE(indices[i], unsigned int);
|
|
||||||
}
|
|
||||||
long long paths_size = 0;
|
|
||||||
for (const TBuffer& buffer : m_buffers) {
|
|
||||||
paths_size += SLIC3R_STDVEC_MEMSIZE(buffer.paths, Path);
|
|
||||||
}
|
|
||||||
long long layers_zs_size = SLIC3R_STDVEC_MEMSIZE(m_layers_zs, double);
|
|
||||||
long long roles_size = SLIC3R_STDVEC_MEMSIZE(m_roles, Slic3r::ExtrusionRole);
|
|
||||||
long long extruder_ids_size = SLIC3R_STDVEC_MEMSIZE(m_extruder_ids, unsigned char);
|
|
||||||
BOOST_LOG_TRIVIAL(trace) << "Loaded G-code extrusion paths, "
|
|
||||||
<< format_memsize_MB(vertices_size + indices_size + paths_size + layers_zs_size + roles_size + extruder_ids_size)
|
|
||||||
<< log_memory_info();
|
|
||||||
}
|
}
|
||||||
|
long long indices_size = 0;
|
||||||
|
for (size_t i = 0; i < indices.size(); ++i) {
|
||||||
|
indices_size += SLIC3R_STDVEC_MEMSIZE(indices[i], unsigned int);
|
||||||
|
}
|
||||||
|
log_memory_used("Loaded G-code extrusion paths, ", vertices_size + indices_size);
|
||||||
|
|
||||||
#if ENABLE_GCODE_VIEWER_STATISTICS
|
#if ENABLE_GCODE_VIEWER_STATISTICS
|
||||||
m_statistics.load_time = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now() - start_time).count();
|
m_statistics.load_time = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now() - start_time).count();
|
||||||
|
@ -1506,13 +1484,13 @@ void GCodeViewer::refresh_render_paths(bool keep_sequential_current_first, bool
|
||||||
it->path_id = id;
|
it->path_id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int size_in_vertices = std::min(m_sequential_view.current.last, path.last.s_id) - std::max(m_sequential_view.current.first, path.first.s_id) + 1;
|
unsigned int segments_count = std::min(m_sequential_view.current.last, path.last.s_id) - std::max(m_sequential_view.current.first, path.first.s_id) + 1;
|
||||||
unsigned int size_in_indices = 0;
|
unsigned int size_in_indices = 0;
|
||||||
switch (buffer->render_primitive_type)
|
switch (buffer->render_primitive_type)
|
||||||
{
|
{
|
||||||
case TBuffer::ERenderPrimitiveType::Point: { size_in_indices = size_in_vertices; break; }
|
case TBuffer::ERenderPrimitiveType::Point: { size_in_indices = segments_count; break; }
|
||||||
case TBuffer::ERenderPrimitiveType::Line:
|
case TBuffer::ERenderPrimitiveType::Line:
|
||||||
case TBuffer::ERenderPrimitiveType::Triangle: { size_in_indices = buffer->indices_per_segment() * (size_in_vertices - 1); break; }
|
case TBuffer::ERenderPrimitiveType::Triangle: { size_in_indices = buffer->indices_per_segment() * (segments_count - 1); break; }
|
||||||
}
|
}
|
||||||
it->sizes.push_back(size_in_indices);
|
it->sizes.push_back(size_in_indices);
|
||||||
|
|
||||||
|
@ -2411,6 +2389,26 @@ bool GCodeViewer::is_travel_in_z_range(size_t id) const
|
||||||
return is_in_z_range(path);
|
return is_in_z_range(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GCodeViewer::log_memory_used(const std::string& label, long long additional) const
|
||||||
|
{
|
||||||
|
if (Slic3r::get_logging_level() >= 5) {
|
||||||
|
long long paths_size = 0;
|
||||||
|
long long render_paths_size = 0;
|
||||||
|
for (const TBuffer& buffer : m_buffers) {
|
||||||
|
paths_size += SLIC3R_STDVEC_MEMSIZE(buffer.paths, Path);
|
||||||
|
render_paths_size += SLIC3R_STDVEC_MEMSIZE(buffer.render_paths, RenderPath);
|
||||||
|
for (const RenderPath& path : buffer.render_paths) {
|
||||||
|
render_paths_size += SLIC3R_STDVEC_MEMSIZE(path.sizes, unsigned int);
|
||||||
|
render_paths_size += SLIC3R_STDVEC_MEMSIZE(path.offsets, size_t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
long long layers_zs_size = SLIC3R_STDVEC_MEMSIZE(m_layers_zs, double);
|
||||||
|
BOOST_LOG_TRIVIAL(trace) << label
|
||||||
|
<< format_memsize_MB(additional + paths_size + render_paths_size + layers_zs_size)
|
||||||
|
<< log_memory_info();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace GUI
|
} // namespace GUI
|
||||||
} // namespace Slic3r
|
} // namespace Slic3r
|
||||||
|
|
||||||
|
|
|
@ -143,7 +143,7 @@ class GCodeViewer
|
||||||
Color color;
|
Color color;
|
||||||
size_t path_id;
|
size_t path_id;
|
||||||
std::vector<unsigned int> sizes;
|
std::vector<unsigned int> sizes;
|
||||||
std::vector<size_t> offsets; // use size_t because we need the pointer's size (used in the call glMultiDrawElements())
|
std::vector<size_t> offsets; // use size_t because we need an unsigned int whose size matches pointer's size (used in the call glMultiDrawElements())
|
||||||
};
|
};
|
||||||
|
|
||||||
// buffer containing data for rendering a specific toolpath type
|
// buffer containing data for rendering a specific toolpath type
|
||||||
|
@ -470,6 +470,7 @@ private:
|
||||||
return in_z_range(path.first.position[2]) || in_z_range(path.last.position[2]);
|
return in_z_range(path.first.position[2]) || in_z_range(path.last.position[2]);
|
||||||
}
|
}
|
||||||
bool is_travel_in_z_range(size_t id) const;
|
bool is_travel_in_z_range(size_t id) const;
|
||||||
|
void log_memory_used(const std::string& label, long long additional = 0) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace GUI
|
} // namespace GUI
|
||||||
|
|
Loading…
Add table
Reference in a new issue