## Summary of Changes
Previously, left-clicking to orbit the camera while a path was playing
would directly modify the camera transform, corrupting the ongoing
interpolation. Stopping the path playback on a mouse press assumes the
user intentionally wants to interrupt it.
## Release Management
* Affected package(s): Basic_Viewer, GraphicsView
## Summary of Changes
Suppress
[warning](https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-6.2-Ic-134/Lab_Demo/TestReport_lrineau_Ubuntu-latest-GCC6-CXX1z.gz)
issued by gcc.
```
include/CGAL/Three/Viewer_interface.h:42:21: warning: defining ‘CGAL::Three::Viewer_interface’, which previously failed to be complete in a SFINAE context [-Wsfinae-incomplete=]
42 | class VIEWER_EXPORT Viewer_interface : public CGAL::QGLViewer{
| ^~~~~~~~~~~~~~~~
```
## Release Management
* Affected package(s): Lab
* License and copyright ownership: unchanged
- Add bindAttributeLocation(a_Pos, 0) and bindAttributeLocation(a_Color, 1)
before link() for rendering_program_p_l, rendering_program_line, and
rendering_program_cylinder to guarantee consistent attribute locations
across all OpenGL drivers.
- Remove dead 'in mediump vec4 g_Color[]' from GEOMETRY_SOURCE_LINE_WIDTH
geometry shader (no matching vertex shader output).
- Add proper edge rendering fallback via rendering_program_p_l for
OpenGL < 4.3 where the geometry shader is unavailable.
- Re-add minor version check for OpenGL 4.0-4.2 in qglviewer_impl.h.
- Version check: revert to majorVersion() < 4 instead of checking for
specifically 4.3. On macOS, init_ogl_context() caps to 4.1 core
profile; compat shaders (attribute/varying) would fail in core
contexts. The #version 150 modern shaders work fine on any 4.x.
This also correctly handles future OpenGL 5+.
- Warning: use static guard so the message emits only once, even if
compile_shaders() is called multiple times.
Fix compatibility shaders and OpenGL version detection that caused
CGAL::draw() to render solid black geometry on systems with OpenGL < 4.3.
Basic_shaders.h:
- VERTEX_SOURCE_COLOR_COMP: change 'varying' to 'attribute' for vertex
inputs (a_Pos, a_Normal, a_Color) as required by GLSL 1.10/1.20
- VERTEX_SOURCE_COLOR_COMP: replace undefined 'mv_matrix' reference with
'mat3(u_Mv) * a_Normal' matching the declared uniform
- VERTEX_SOURCE_P_L_COMP: change 'varying' to 'attribute' for vertex
inputs (a_Pos, a_Color)
qglviewer_impl.h:
- Initialize is_ogl_4_3 to false in defaultConstructor() to avoid UB
- Fix version check: use major < 4 || (major == 4 && minor < 3) instead
of major != 4, so OpenGL 4.0-4.2 correctly falls back and 5+ works
Basic_viewer.h:
- Add std::cerr warning when compatibility shaders are selected
That still does not work well when the widget is a `QOpenGLWidget`.
We probably need to derive from that class, to call `glClearColor(..)`
in the `paintGL()` method.