From dda70622baba814409b40dbb7d5e466169334c88 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Wed, 28 Jul 2021 15:59:57 +0200 Subject: [PATCH] 3D viewer: fix missing refresh in raytracing mode when changing items visibility. Fixes #8866 https://gitlab.com/kicad/code/kicad/issues/8866 --- 3d-viewer/3d_viewer/tools/eda_3d_controller.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/3d-viewer/3d_viewer/tools/eda_3d_controller.cpp b/3d-viewer/3d_viewer/tools/eda_3d_controller.cpp index 7415860432..021a09630e 100644 --- a/3d-viewer/3d_viewer/tools/eda_3d_controller.cpp +++ b/3d-viewer/3d_viewer/tools/eda_3d_controller.cpp @@ -206,17 +206,25 @@ int EDA_3D_CONTROLLER::ToggleVisibility( const TOOL_EVENT& aEvent ) switch( flag ) { - // These commands do not request a 3D scene rebuild: + // These commands do not request a 3D scene rebuild (and do not exist in raytracing): case FL_RENDER_OPENGL_SHOW_MODEL_BBOX: + case FL_AXIS: + m_canvas->Request_refresh(); + break; + + // These commands do not request a 3D scene rebuild and exist in raytracing: case FL_RENDER_RAYTRACING_SHADOWS: case FL_RENDER_RAYTRACING_REFRACTIONS: case FL_RENDER_RAYTRACING_REFLECTIONS: case FL_RENDER_RAYTRACING_ANTI_ALIASING: - case FL_AXIS: case FL_FP_ATTRIBUTES_NORMAL: case FL_FP_ATTRIBUTES_NORMAL_INSERT: case FL_FP_ATTRIBUTES_VIRTUAL: - m_canvas->Request_refresh(); + if( m_boardAdapter->GetRenderEngine() == RENDER_ENGINE::OPENGL_LEGACY ) + m_canvas->Request_refresh(); + else + m_canvas->RenderRaytracingRequest(); + break; default: