Removed constness from a few renderXXX() methods

This commit is contained in:
enricoturri1966 2021-08-04 12:47:36 +02:00
parent 66d43b882e
commit 599a4d97e3
4 changed files with 26 additions and 28 deletions

View file

@ -757,12 +757,12 @@ void GCodeViewer::reset()
#endif // ENABLE_GCODE_VIEWER_STATISTICS #endif // ENABLE_GCODE_VIEWER_STATISTICS
} }
void GCodeViewer::render() const void GCodeViewer::render()
{ {
auto init_gl_data = [this]() { auto init_gl_data = [this]() {
// initializes opengl data of TBuffers // initializes opengl data of TBuffers
for (size_t i = 0; i < m_buffers.size(); ++i) { for (size_t i = 0; i < m_buffers.size(); ++i) {
TBuffer& buffer = const_cast<TBuffer&>(m_buffers[i]); TBuffer& buffer = m_buffers[i];
switch (buffer_type(i)) switch (buffer_type(i))
{ {
default: { break; } default: { break; }
@ -789,17 +789,17 @@ void GCodeViewer::render() const
} }
// initializes tool marker // initializes tool marker
const_cast<SequentialView*>(&m_sequential_view)->marker.init(); m_sequential_view.marker.init();
// initializes point sizes // initializes point sizes
std::array<int, 2> point_sizes; std::array<int, 2> point_sizes;
::glGetIntegerv(GL_ALIASED_POINT_SIZE_RANGE, point_sizes.data()); ::glGetIntegerv(GL_ALIASED_POINT_SIZE_RANGE, point_sizes.data());
*const_cast<std::array<float, 2>*>(&m_detected_point_sizes) = { static_cast<float>(point_sizes[0]), static_cast<float>(point_sizes[1]) }; m_detected_point_sizes = { static_cast<float>(point_sizes[0]), static_cast<float>(point_sizes[1]) };
*const_cast<bool*>(&m_gl_data_initialized) = true; m_gl_data_initialized = true;
}; };
#if ENABLE_GCODE_VIEWER_STATISTICS #if ENABLE_GCODE_VIEWER_STATISTICS
const_cast<Statistics*>(&m_statistics)->reset_opengl(); m_statistics.reset_opengl();
#endif // ENABLE_GCODE_VIEWER_STATISTICS #endif // ENABLE_GCODE_VIEWER_STATISTICS
// OpenGL data must be initialized after the glContext has been created. // OpenGL data must be initialized after the glContext has been created.
@ -815,10 +815,9 @@ void GCodeViewer::render() const
render_shells(); render_shells();
float legend_height = 0.0f; float legend_height = 0.0f;
render_legend(legend_height); render_legend(legend_height);
SequentialView* sequential_view = const_cast<SequentialView*>(&m_sequential_view); if (m_sequential_view.current.last != m_sequential_view.endpoints.last) {
if (sequential_view->current.last != sequential_view->endpoints.last) { m_sequential_view.marker.set_world_position(m_sequential_view.current_position);
sequential_view->marker.set_world_position(sequential_view->current_position); m_sequential_view.render(legend_height);
sequential_view->render(legend_height);
} }
#if ENABLE_GCODE_VIEWER_STATISTICS #if ENABLE_GCODE_VIEWER_STATISTICS
render_statistics(); render_statistics();
@ -2360,7 +2359,7 @@ void GCodeViewer::refresh_render_paths(bool keep_sequential_current_first, bool
#endif // ENABLE_GCODE_VIEWER_STATISTICS #endif // ENABLE_GCODE_VIEWER_STATISTICS
} }
void GCodeViewer::render_toolpaths() const void GCodeViewer::render_toolpaths()
{ {
#if ENABLE_FIXED_SCREEN_SIZE_POINT_MARKERS #if ENABLE_FIXED_SCREEN_SIZE_POINT_MARKERS
float point_size = 20.0f; float point_size = 20.0f;
@ -2404,7 +2403,7 @@ void GCodeViewer::render_toolpaths() const
set_uniform_color(path.color, shader); set_uniform_color(path.color, shader);
glsafe(::glMultiDrawElements(GL_POINTS, (const GLsizei*)path.sizes.data(), GL_UNSIGNED_SHORT, (const void* const*)path.offsets.data(), (GLsizei)path.sizes.size())); glsafe(::glMultiDrawElements(GL_POINTS, (const GLsizei*)path.sizes.data(), GL_UNSIGNED_SHORT, (const void* const*)path.offsets.data(), (GLsizei)path.sizes.size()));
#if ENABLE_GCODE_VIEWER_STATISTICS #if ENABLE_GCODE_VIEWER_STATISTICS
++const_cast<Statistics*>(&m_statistics)->gl_multi_points_calls_count; ++m_statistics.gl_multi_points_calls_count;
#endif // ENABLE_GCODE_VIEWER_STATISTICS #endif // ENABLE_GCODE_VIEWER_STATISTICS
} }
} }
@ -2425,7 +2424,7 @@ void GCodeViewer::render_toolpaths() const
set_uniform_color(path.color, shader); set_uniform_color(path.color, shader);
glsafe(::glMultiDrawElements(GL_LINES, (const GLsizei*)path.sizes.data(), GL_UNSIGNED_SHORT, (const void* const*)path.offsets.data(), (GLsizei)path.sizes.size())); glsafe(::glMultiDrawElements(GL_LINES, (const GLsizei*)path.sizes.data(), GL_UNSIGNED_SHORT, (const void* const*)path.offsets.data(), (GLsizei)path.sizes.size()));
#if ENABLE_GCODE_VIEWER_STATISTICS #if ENABLE_GCODE_VIEWER_STATISTICS
++const_cast<Statistics*>(&m_statistics)->gl_multi_lines_calls_count; ++m_statistics.gl_multi_lines_calls_count;
#endif // ENABLE_GCODE_VIEWER_STATISTICS #endif // ENABLE_GCODE_VIEWER_STATISTICS
} }
} }
@ -2442,7 +2441,7 @@ void GCodeViewer::render_toolpaths() const
set_uniform_color(path.color, shader); set_uniform_color(path.color, shader);
glsafe(::glMultiDrawElements(GL_TRIANGLES, (const GLsizei*)path.sizes.data(), GL_UNSIGNED_SHORT, (const void* const*)path.offsets.data(), (GLsizei)path.sizes.size())); glsafe(::glMultiDrawElements(GL_TRIANGLES, (const GLsizei*)path.sizes.data(), GL_UNSIGNED_SHORT, (const void* const*)path.offsets.data(), (GLsizei)path.sizes.size()));
#if ENABLE_GCODE_VIEWER_STATISTICS #if ENABLE_GCODE_VIEWER_STATISTICS
++const_cast<Statistics*>(&m_statistics)->gl_multi_triangles_calls_count; ++m_statistics.gl_multi_triangles_calls_count;
#endif // ENABLE_GCODE_VIEWER_STATISTICS #endif // ENABLE_GCODE_VIEWER_STATISTICS
} }
} }
@ -2535,7 +2534,7 @@ void GCodeViewer::render_toolpaths() const
glsafe(::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0)); glsafe(::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0));
#if ENABLE_GCODE_VIEWER_STATISTICS #if ENABLE_GCODE_VIEWER_STATISTICS
++const_cast<Statistics*>(&m_statistics)->gl_triangles_calls_count; ++m_statistics.gl_triangles_calls_count;
#endif // ENABLE_GCODE_VIEWER_STATISTICS #endif // ENABLE_GCODE_VIEWER_STATISTICS
if (has_normals) if (has_normals)
@ -2554,7 +2553,7 @@ void GCodeViewer::render_toolpaths() const
} }
} }
void GCodeViewer::render_shells() const void GCodeViewer::render_shells()
{ {
if (!m_shells.visible || m_shells.volumes.empty()) if (!m_shells.visible || m_shells.volumes.empty())
return; return;
@ -2572,7 +2571,7 @@ void GCodeViewer::render_shells() const
// glsafe(::glDepthMask(GL_TRUE)); // glsafe(::glDepthMask(GL_TRUE));
} }
void GCodeViewer::render_legend(float& legend_height) const void GCodeViewer::render_legend(float& legend_height)
{ {
if (!m_legend_enabled) if (!m_legend_enabled)
return; return;
@ -2935,8 +2934,7 @@ void GCodeViewer::render_legend(float& legend_height) const
const bool visible = is_visible(role); const bool visible = is_visible(role);
append_item(EItemType::Rect, Extrusion_Role_Colors[static_cast<unsigned int>(role)], labels[i], append_item(EItemType::Rect, Extrusion_Role_Colors[static_cast<unsigned int>(role)], labels[i],
visible, times[i], percents[i], max_percent, offsets, used_filaments_m[i], used_filaments_g[i], [this, role, visible]() { visible, times[i], percents[i], max_percent, offsets, used_filaments_m[i], used_filaments_g[i], [this, role, visible]() {
Extrusions* extrusions = const_cast<Extrusions*>(&m_extrusions); m_extrusions.role_visibility_flags = visible ? m_extrusions.role_visibility_flags & ~(1 << role) : m_extrusions.role_visibility_flags | (1 << role);
extrusions->role_visibility_flags = visible ? extrusions->role_visibility_flags & ~(1 << role) : extrusions->role_visibility_flags | (1 << role);
// update buffers' render paths // update buffers' render paths
refresh_render_paths(false, false); refresh_render_paths(false, false);
wxGetApp().plater()->update_preview_moves_slider(); wxGetApp().plater()->update_preview_moves_slider();
@ -3408,7 +3406,7 @@ void GCodeViewer::render_legend(float& legend_height) const
auto show_mode_button = [this, &imgui, can_show_mode_button](const wxString& label, PrintEstimatedStatistics::ETimeMode mode) { auto show_mode_button = [this, &imgui, can_show_mode_button](const wxString& label, PrintEstimatedStatistics::ETimeMode mode) {
if (can_show_mode_button(mode)) { if (can_show_mode_button(mode)) {
if (imgui.button(label)) { if (imgui.button(label)) {
*const_cast<PrintEstimatedStatistics::ETimeMode*>(&m_time_estimate_mode) = mode; m_time_estimate_mode = mode;
wxGetApp().plater()->get_current_canvas3D()->set_as_dirty(); wxGetApp().plater()->get_current_canvas3D()->set_as_dirty();
wxGetApp().plater()->get_current_canvas3D()->request_extra_frame(); wxGetApp().plater()->get_current_canvas3D()->request_extra_frame();
} }
@ -3435,7 +3433,7 @@ void GCodeViewer::render_legend(float& legend_height) const
} }
#if ENABLE_GCODE_VIEWER_STATISTICS #if ENABLE_GCODE_VIEWER_STATISTICS
void GCodeViewer::render_statistics() const void GCodeViewer::render_statistics()
{ {
static const float offset = 275.0f; static const float offset = 275.0f;

View file

@ -632,7 +632,7 @@ public:
void update_shells_color_by_extruder(const DynamicPrintConfig* config); void update_shells_color_by_extruder(const DynamicPrintConfig* config);
void reset(); void reset();
void render() const; void render();
bool has_data() const { return !m_roles.empty(); } bool has_data() const { return !m_roles.empty(); }
bool can_export_toolpaths() const; bool can_export_toolpaths() const;
@ -678,11 +678,11 @@ private:
void load_toolpaths(const GCodeProcessor::Result& gcode_result); void load_toolpaths(const GCodeProcessor::Result& gcode_result);
void load_shells(const Print& print, bool initialized); void load_shells(const Print& print, bool initialized);
void refresh_render_paths(bool keep_sequential_current_first, bool keep_sequential_current_last) const; void refresh_render_paths(bool keep_sequential_current_first, bool keep_sequential_current_last) const;
void render_toolpaths() const; void render_toolpaths();
void render_shells() const; void render_shells();
void render_legend(float& legend_height) const; void render_legend(float& legend_height);
#if ENABLE_GCODE_VIEWER_STATISTICS #if ENABLE_GCODE_VIEWER_STATISTICS
void render_statistics() const; void render_statistics();
#endif // ENABLE_GCODE_VIEWER_STATISTICS #endif // ENABLE_GCODE_VIEWER_STATISTICS
bool is_visible(ExtrusionRole role) const { bool is_visible(ExtrusionRole role) const {
return role < erCount && (m_extrusions.role_visibility_flags & (1 << role)) != 0; return role < erCount && (m_extrusions.role_visibility_flags & (1 << role)) != 0;

View file

@ -5175,7 +5175,7 @@ void GLCanvas3D::_render_objects()
m_camera_clipping_plane = ClippingPlane::ClipsNothing(); m_camera_clipping_plane = ClippingPlane::ClipsNothing();
} }
void GLCanvas3D::_render_gcode() const void GLCanvas3D::_render_gcode()
{ {
m_gcode_viewer.render(); m_gcode_viewer.render();
} }

View file

@ -906,7 +906,7 @@ private:
#else #else
void _render_objects(); void _render_objects();
#endif // ENABLE_DELAYED_TRANSPARENT_VOLUMES_RENDERING #endif // ENABLE_DELAYED_TRANSPARENT_VOLUMES_RENDERING
void _render_gcode() const; void _render_gcode();
void _render_selection() const; void _render_selection() const;
void _render_sequential_clearance(); void _render_sequential_clearance();
#if ENABLE_RENDER_SELECTION_CENTER #if ENABLE_RENDER_SELECTION_CENTER