Fix using of deprecated opengl functions

This commit is contained in:
Filip Sykala - NTB T15p 2022-08-31 15:53:13 +02:00
parent ac6a91debe
commit 9cefc74e3d
4 changed files with 26 additions and 8 deletions

View File

@ -74,7 +74,7 @@
// Enable fix of used filament data exported to gcode file
#define ENABLE_USED_FILAMENT_POST_PROCESS (1 && ENABLE_2_5_0_ALPHA1)
// Enable picking using raytracing
#define ENABLE_RAYCAST_PICKING (0 && ENABLE_LEGACY_OPENGL_REMOVAL)
#define ENABLE_RAYCAST_PICKING (1 && ENABLE_LEGACY_OPENGL_REMOVAL)
#define ENABLE_RAYCAST_PICKING_DEBUG (0 && ENABLE_RAYCAST_PICKING)

View File

@ -413,22 +413,22 @@ void GLGizmoEmboss::on_render() {
#else
const GLVolume& gl_volume = *selection.get_volume(*selection.get_volume_idxs().begin());
#endif // ENABLE_LEGACY_OPENGL_REMOVAL
#if ENABLE_GL_SHADERS_ATTRIBUTES
#if ENABLE_LEGACY_OPENGL_REMOVAL
GLShaderProgram* shader = wxGetApp().get_shader("gouraud_light");
#else
glsafe(::glPushMatrix());
glsafe(::glMultMatrixd(m_temp_transformation->data()));
GLShaderProgram *shader = wxGetApp().get_shader("gouraud_light");
#endif // ENABLE_GL_SHADERS_ATTRIBUTES
#endif // ENABLE_LEGACY_OPENGL_REMOVAL
shader->start_using();
#if ENABLE_GL_SHADERS_ATTRIBUTES
#if ENABLE_LEGACY_OPENGL_REMOVAL
const Camera& camera = wxGetApp().plater()->get_camera();
const Transform3d matrix = camera.get_view_matrix() * (*m_temp_transformation);
shader->set_uniform("view_model_matrix", matrix);
shader->set_uniform("projection_matrix", camera.get_projection_matrix());
shader->set_uniform("normal_matrix", (Matrix3d)matrix.matrix().block(0, 0, 3, 3).inverse().transpose());
#endif // ENABLE_GL_SHADERS_ATTRIBUTES
#endif // ENABLE_LEGACY_OPENGL_REMOVAL
// dragging object must be selected so draw it with correct color
//auto color = gl_volume.color;
@ -457,9 +457,9 @@ void GLGizmoEmboss::on_render() {
if (is_transparent) glsafe(::glDisable(GL_BLEND));
shader->stop_using();
#if !ENABLE_GL_SHADERS_ATTRIBUTES
#if !ENABLE_LEGACY_OPENGL_REMOVAL
glsafe(::glPopMatrix());
#endif // !ENABLE_GL_SHADERS_ATTRIBUTES
#endif // !ENABLE_LEGACY_OPENGL_REMOVAL
}
// Do NOT render rotation grabbers when dragging object
@ -470,9 +470,18 @@ void GLGizmoEmboss::on_render() {
}
}
#if ENABLE_RAYCAST_PICKING
void GLGizmoEmboss::on_register_raycasters_for_picking(){
m_rotate_gizmo.register_raycasters_for_picking();
}
void GLGizmoEmboss::on_unregister_raycasters_for_picking(){
m_rotate_gizmo.unregister_raycasters_for_picking();
}
#else // !ENABLE_RAYCAST_PICKING
void GLGizmoEmboss::on_render_for_picking() {
m_rotate_gizmo.render_for_picking();
}
#endif // ENABLE_RAYCAST_PICKING
#ifdef SHOW_FINE_POSITION
// draw suggested position of window

View File

@ -56,7 +56,12 @@ protected:
bool on_init() override;
std::string on_get_name() const override;
void on_render() override;
void on_render_for_picking() override;
#if ENABLE_RAYCAST_PICKING
virtual void on_register_raycasters_for_picking() override;
virtual void on_unregister_raycasters_for_picking() override;
#else // !ENABLE_RAYCAST_PICKING
void on_render_for_picking() override;
#endif // ENABLE_RAYCAST_PICKING
void on_render_input_window(float x, float y, float bottom_limit) override;
bool on_is_activable() const override { return true; }
bool on_is_selectable() const override { return false; }

View File

@ -26,7 +26,11 @@ void RaycastManager::actualize(const ModelObject *object, const ISkip *skip)
});
if (item == m_raycasters.end()) {
// add new raycaster
#if ENABLE_RAYCAST_PICKING
auto raycaster = std::make_unique<MeshRaycaster>(volume->get_mesh_shared_ptr());
#else // !ENABLE_RAYCAST_PICKING
auto raycaster = std::make_unique<MeshRaycaster>(volume->mesh());
#endif // ENABLE_RAYCAST_PICKING
m_raycasters.emplace_back(std::make_pair(oid, std::move(raycaster)));
} else {
size_t index = item - m_raycasters.begin();