diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index 94830a70a2..4b3553824a 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -57,6 +57,8 @@ #define ENABLE_LEGACY_OPENGL_REMOVAL (1 && ENABLE_2_5_0_ALPHA1) // Enable OpenGL ES #define ENABLE_OPENGL_ES (1 && ENABLE_LEGACY_OPENGL_REMOVAL) +// Enable OpenGL ES forcing ES 2.0 as min version +#define ENABLE_OPENGL_ES_2_0 (0 && ENABLE_OPENGL_ES) // Enable OpenGL core profile context (tested against Mesa 20.1.8 on Windows) #define ENABLE_GL_CORE_PROFILE (1 && ENABLE_LEGACY_OPENGL_REMOVAL && !ENABLE_OPENGL_ES) // Shows an imgui dialog with GLModel statistics data diff --git a/src/slic3r/GUI/GLSelectionRectangle.cpp b/src/slic3r/GUI/GLSelectionRectangle.cpp index 419b7c2dca..771767310c 100644 --- a/src/slic3r/GUI/GLSelectionRectangle.cpp +++ b/src/slic3r/GUI/GLSelectionRectangle.cpp @@ -151,29 +151,12 @@ namespace GUI { m_rectangle.reset(); GLModel::Geometry init_data; -#if ENABLE_OPENGL_ES - if (wxGetApp().is_gl_version_greater_or_equal_to(3, 1)) { - init_data.format = { GLModel::Geometry::EPrimitiveType::Lines, GLModel::Geometry::EVertexLayout::P4 }; - init_data.reserve_vertices(8); - init_data.reserve_indices(8); - } - else { - init_data.format = { GLModel::Geometry::EPrimitiveType::LineLoop, GLModel::Geometry::EVertexLayout::P2 }; - init_data.reserve_vertices(4); - init_data.reserve_indices(4); - } -#elif ENABLE_GL_CORE_PROFILE +#if ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES init_data.format = { GLModel::Geometry::EPrimitiveType::Lines, GLModel::Geometry::EVertexLayout::P4 }; init_data.reserve_vertices(8); init_data.reserve_indices(8); -#else - init_data.format = { GLModel::Geometry::EPrimitiveType::LineLoop, GLModel::Geometry::EVertexLayout::P2 }; - init_data.reserve_vertices(4); - init_data.reserve_indices(4); -#endif // ENABLE_OPENGL_ES // vertices -#if ENABLE_GL_CORE_PROFILE || ENABLE_OPENGL_ES const float width = right - left; const float height = top - bottom; float perimeter = 0.0f; @@ -200,6 +183,11 @@ namespace GUI { init_data.add_line(4, 5); init_data.add_line(6, 7); #else + init_data.format = { GLModel::Geometry::EPrimitiveType::LineLoop, GLModel::Geometry::EVertexLayout::P2 }; + init_data.reserve_vertices(4); + init_data.reserve_indices(4); + + // vertices init_data.add_vertex(Vec2f(left, bottom)); init_data.add_vertex(Vec2f(right, bottom)); init_data.add_vertex(Vec2f(right, top)); diff --git a/src/slic3r/GUI/OpenGLManager.cpp b/src/slic3r/GUI/OpenGLManager.cpp index 61d1118aea..0de72dab6e 100644 --- a/src/slic3r/GUI/OpenGLManager.cpp +++ b/src/slic3r/GUI/OpenGLManager.cpp @@ -316,7 +316,11 @@ bool OpenGLManager::init_gl() s_framebuffers_type = EFramebufferType::Unknown; #if ENABLE_OPENGL_ES +#if ENABLE_OPENGL_ES_2_0 bool valid_version = s_gl_info.is_version_greater_or_equal_to(2, 0); +#else + bool valid_version = true; +#endif // ENABLE_OPENGL_ES_2_0 #elif ENABLE_GL_CORE_PROFILE bool valid_version = s_gl_info.is_core_profile() ? s_gl_info.is_version_greater_or_equal_to(3, 3) : s_gl_info.is_version_greater_or_equal_to(2, 0); #else @@ -363,7 +367,11 @@ wxGLContext* OpenGLManager::init_glcontext(wxGLCanvas& canvas) if (m_context == nullptr) { #if ENABLE_OPENGL_ES wxGLContextAttrs attrs; +#if ENABLE_OPENGL_ES_2_0 attrs.ES2().MajorVersion(2).EndList(); +#else + attrs.ES2().EndList(); +#endif // ENABLE_OPENGL_ES_2_0 m_context = new wxGLContext(&canvas, nullptr, &attrs); #elif ENABLE_GL_CORE_PROFILE wxGLContextAttrs attrs;