Tech ENABLE_SEAMS_USING_MODELS -> Use new options visualization only if OpenGL 3.1 or greater is detected

This commit is contained in:
enricoturri1966 2021-08-05 09:09:07 +02:00
parent fd81041adb
commit 8c4e203e1d

View file

@ -545,6 +545,7 @@ const GCodeViewer::Color GCodeViewer::Neutral_Color = { 0.25f, 0.25f, 0.25f, 1.0
GCodeViewer::GCodeViewer() GCodeViewer::GCodeViewer()
{ {
#if !ENABLE_SEAMS_USING_MODELS
// initializes non OpenGL data of TBuffers // initializes non OpenGL data of TBuffers
// OpenGL data are initialized into render().init_gl_data() // OpenGL data are initialized into render().init_gl_data()
for (size_t i = 0; i < m_buffers.size(); ++i) { for (size_t i = 0; i < m_buffers.size(); ++i) {
@ -552,18 +553,6 @@ GCodeViewer::GCodeViewer()
switch (buffer_type(i)) switch (buffer_type(i))
{ {
default: { break; } default: { break; }
#if ENABLE_SEAMS_USING_MODELS
case EMoveType::Tool_change:
case EMoveType::Color_change:
case EMoveType::Pause_Print:
case EMoveType::Custom_GCode:
case EMoveType::Retract:
case EMoveType::Unretract:
case EMoveType::Seam: {
buffer.render_primitive_type = TBuffer::ERenderPrimitiveType::Model;
break;
}
#else
case EMoveType::Tool_change: case EMoveType::Tool_change:
case EMoveType::Color_change: case EMoveType::Color_change:
case EMoveType::Pause_Print: case EMoveType::Pause_Print:
@ -575,7 +564,6 @@ GCodeViewer::GCodeViewer()
buffer.vertices.format = VBuffer::EFormat::Position; buffer.vertices.format = VBuffer::EFormat::Position;
break; break;
} }
#endif // ENABLE_SEAMS_USING_MODELS
case EMoveType::Wipe: case EMoveType::Wipe:
case EMoveType::Extrude: { case EMoveType::Extrude: {
buffer.render_primitive_type = TBuffer::ERenderPrimitiveType::Triangle; buffer.render_primitive_type = TBuffer::ERenderPrimitiveType::Triangle;
@ -591,6 +579,8 @@ GCodeViewer::GCodeViewer()
} }
set_toolpath_move_type_visible(EMoveType::Extrude, true); set_toolpath_move_type_visible(EMoveType::Extrude, true);
#endif // !ENABLE_SEAMS_USING_MODELS
// m_sequential_view.skip_invisible_moves = true; // m_sequential_view.skip_invisible_moves = true;
} }
@ -797,25 +787,47 @@ void GCodeViewer::render()
case EMoveType::Unretract: case EMoveType::Unretract:
case EMoveType::Seam: { case EMoveType::Seam: {
#if ENABLE_SEAMS_USING_MODELS #if ENABLE_SEAMS_USING_MODELS
buffer.shader = "gouraud_light"; if (wxGetApp().is_gl_version_greater_or_equal_to(3, 1)) {
buffer.model.model.init_from(diamond(16)); buffer.render_primitive_type = TBuffer::ERenderPrimitiveType::Model;
buffer.model.color = option_color(type); buffer.shader = "gouraud_light";
buffer.model.model.init_from(diamond(16));
buffer.model.color = option_color(type);
}
else {
buffer.render_primitive_type = TBuffer::ERenderPrimitiveType::Point;
buffer.vertices.format = VBuffer::EFormat::Position;
buffer.shader = wxGetApp().is_glsl_version_greater_or_equal_to(1, 20) ? "options_120" : "options_110";
}
break; break;
#else #else
buffer.render_primitive_type = TBuffer::ERenderPrimitiveType::Point;
buffer.vertices.format = VBuffer::EFormat::Position;
buffer.shader = wxGetApp().is_glsl_version_greater_or_equal_to(1, 20) ? "options_120" : "options_110"; buffer.shader = wxGetApp().is_glsl_version_greater_or_equal_to(1, 20) ? "options_120" : "options_110";
break; break;
#endif // ENABLE_SEAMS_USING_MODELS #endif // ENABLE_SEAMS_USING_MODELS
} }
case EMoveType::Wipe: case EMoveType::Wipe:
case EMoveType::Extrude: { case EMoveType::Extrude: {
#if ENABLE_SEAMS_USING_MODELS
buffer.render_primitive_type = TBuffer::ERenderPrimitiveType::Triangle;
buffer.vertices.format = VBuffer::EFormat::PositionNormal3;
#endif // ENABLE_SEAMS_USING_MODELS
buffer.shader = "gouraud_light"; buffer.shader = "gouraud_light";
break; break;
} }
case EMoveType::Travel: { case EMoveType::Travel: {
#if ENABLE_SEAMS_USING_MODELS
buffer.render_primitive_type = TBuffer::ERenderPrimitiveType::Line;
buffer.vertices.format = VBuffer::EFormat::PositionNormal1;
#endif // ENABLE_SEAMS_USING_MODELS
buffer.shader = "toolpaths_lines"; buffer.shader = "toolpaths_lines";
break; break;
} }
} }
#if ENABLE_SEAMS_USING_MODELS
set_toolpath_move_type_visible(EMoveType::Extrude, true);
#endif // ENABLE_SEAMS_USING_MODELS
} }
// initializes tool marker // initializes tool marker