From c03aa5ffeb50e586da6f78231c9d3db59bc3d83c Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Mon, 5 Aug 2024 10:05:40 +0800 Subject: [PATCH] FIX:fix crash opengl api in mac jira: none Change-Id: I797082987378f53480eacdc6a2528cfdedf50528 (cherry picked from commit 654db45bc293c03ec72cbbb7f4a651a7e946f9ea) --- src/slic3r/GUI/GLModel.cpp | 30 ++++++++++++++++++------------ src/slic3r/GUI/OpenGLManager.cpp | 1 + src/slic3r/GUI/PartPlate.cpp | 1 + 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/slic3r/GUI/GLModel.cpp b/src/slic3r/GUI/GLModel.cpp index d77ab7ef8..06fa16af6 100644 --- a/src/slic3r/GUI/GLModel.cpp +++ b/src/slic3r/GUI/GLModel.cpp @@ -916,23 +916,26 @@ void GLModel::create_or_update_mats_vbo(unsigned int &vbo, const std::vector &range) { + if (instance_mats_vbo == 0 || instances_count == 0) { + return; + } if (m_render_data.size() != 1) { return; } GLShaderProgram *shader = wxGetApp().get_current_shader(); if (shader == nullptr) return; diff --git a/src/slic3r/GUI/OpenGLManager.cpp b/src/slic3r/GUI/OpenGLManager.cpp index 3f38e15bc..4c0577407 100644 --- a/src/slic3r/GUI/OpenGLManager.cpp +++ b/src/slic3r/GUI/OpenGLManager.cpp @@ -236,6 +236,7 @@ OpenGLManager::~OpenGLManager() bool OpenGLManager::init_gl(bool popup_error) { if (!m_gl_initialized) { + glewExperimental = GL_TRUE; GLenum result = glewInit(); if (result != GLEW_OK) { BOOST_LOG_TRIVIAL(error) << "Unable to init glew library"; diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 2a6ff4511..1fb861a2a 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -4766,6 +4766,7 @@ void PartPlateList::render_instance_grid(bool bottom) void PartPlateList::render_instance_background(bool force_default_color) { + if (m_unselected_plate_trans.size() == 0) { return; } // draw background ColorRGBA color; if (!force_default_color) {