From ed3a8ce64584ebb9be54240fd149749737623384 Mon Sep 17 00:00:00 2001 From: Martino Ferrari Date: Mon, 28 Sep 2026 22:13:40 +0200 Subject: [PATCH] licence: MIT LICENSE and SPDX identifiers in every first-party file The repository had no licence at all, so every source was all-rights-reserved by default. Add the verbatim MIT text at LICENSE (Copyright (c) 2026 Martino Ferrari) and a two-line SPDX header to each of the 113 first-party sources -- 48 include/plot, 26 src, 10 adapters, 5 examples, 21 tests, 3 tools -- so the grant travels with each file rather than relying on the root document alone. Scripts keep their shebang on line 1; the SPDX lines follow it. Genuinely vendored code is untouched: third_party/stb_truetype.h carries no header of ours. src/render/embedded_mono_font.cpp is generated, so tools/fonts/gen_atlas.py emit() now writes the two lines into its header comment and the file was regenerated -- gen_atlas.py --check passes and the regeneration adds only those comment lines to the previously committed file. README's provenance section now states MIT and links LICENSE. No code, test or public API change. --- LICENSE | 21 +++++++++++++++++++++ README.md | 6 ++++-- adapters/glfw/glfw_host.cpp | 3 +++ adapters/glfw/glfw_host.hpp | 3 +++ adapters/gtk4/gtk_input.hpp | 3 +++ adapters/gtk4/gtk_plot_area.cpp | 3 +++ adapters/gtk4/gtk_plot_area.hpp | 3 +++ adapters/imgui/imgui_plot.cpp | 3 +++ adapters/imgui/imgui_plot.hpp | 3 +++ adapters/qt6/qt_plot_widget.cpp | 3 +++ adapters/qt6/qt_plot_widget.hpp | 3 +++ adapters/qt6/qt_pointer.hpp | 3 +++ examples/glfw_demo.cpp | 3 +++ examples/gtk_demo.cpp | 3 +++ examples/imgui_demo.cpp | 3 +++ examples/multiplot_demo.cpp | 3 +++ examples/qt_demo.cpp | 3 +++ include/plot/core/color.hpp | 3 +++ include/plot/core/rect.hpp | 3 +++ include/plot/core/span.hpp | 3 +++ include/plot/core/status.hpp | 3 +++ include/plot/core/types.hpp | 3 +++ include/plot/data/array_series.hpp | 3 +++ include/plot/data/detail/cover_count.hpp | 3 +++ include/plot/data/detail/merge_count.hpp | 3 +++ include/plot/data/minmax_pyramid.hpp | 3 +++ include/plot/data/ring_buffer.hpp | 3 +++ include/plot/data/series.hpp | 3 +++ include/plot/data/stream_series.hpp | 3 +++ include/plot/gl/api.hpp | 3 +++ include/plot/gl/caps.hpp | 3 +++ include/plot/gl/handle.hpp | 3 +++ include/plot/gl/loader.hpp | 3 +++ include/plot/input/controller.hpp | 3 +++ include/plot/input/events.hpp | 3 +++ include/plot/math/mat3.hpp | 3 +++ include/plot/math/transform.hpp | 3 +++ include/plot/math/vec2.hpp | 3 +++ include/plot/plot.hpp | 3 +++ include/plot/plot/annotation.hpp | 3 +++ include/plot/plot/axis.hpp | 3 +++ include/plot/plot/crosshair.hpp | 3 +++ include/plot/plot/cursor.hpp | 3 +++ include/plot/plot/detail/measure_count.hpp | 3 +++ include/plot/plot/figure.hpp | 3 +++ include/plot/plot/grid.hpp | 3 +++ include/plot/plot/legend.hpp | 3 +++ include/plot/plot/measure.hpp | 3 +++ include/plot/plot/plot.hpp | 3 +++ include/plot/plot/region.hpp | 3 +++ include/plot/plot/ticks.hpp | 3 +++ include/plot/plot/trace.hpp | 3 +++ include/plot/render/buffer.hpp | 3 +++ include/plot/render/detail/ring_stats.hpp | 3 +++ include/plot/render/detail/text_scale.hpp | 3 +++ include/plot/render/embedded_mono_font.hpp | 3 +++ include/plot/render/primitives.hpp | 3 +++ include/plot/render/program.hpp | 3 +++ include/plot/render/renderer.hpp | 3 +++ include/plot/render/shaders.hpp | 3 +++ include/plot/render/style.hpp | 3 +++ include/plot/render/text.hpp | 3 +++ include/plot/render/text_atlas.hpp | 3 +++ include/plot/render/vertex_array.hpp | 3 +++ include/plot/text/true_type_font.hpp | 3 +++ src/core/status.cpp | 3 +++ src/data/array_series.cpp | 3 +++ src/data/minmax_pyramid.cpp | 3 +++ src/data/series.cpp | 3 +++ src/data/stream_series.cpp | 3 +++ src/gl/handle.cpp | 3 +++ src/gl/loader.cpp | 3 +++ src/input/controller.cpp | 3 +++ src/math/transform.cpp | 3 +++ src/plot/axis.cpp | 3 +++ src/plot/figure.cpp | 3 +++ src/plot/grid.cpp | 3 +++ src/plot/measure.cpp | 3 +++ src/plot/plot.cpp | 3 +++ src/plot/ticks.cpp | 3 +++ src/render/buffer.cpp | 3 +++ src/render/embedded_mono_font.cpp | 3 +++ src/render/primitives.cpp | 3 +++ src/render/program.cpp | 3 +++ src/render/renderer.cpp | 3 +++ src/render/shaders.cpp | 3 +++ src/render/text.cpp | 3 +++ src/render/text_atlas.cpp | 3 +++ src/render/vertex_array.cpp | 3 +++ src/text/stb_truetype_impl.cpp | 3 +++ src/text/true_type_font.cpp | 3 +++ tests/egl_headless.cpp | 3 +++ tests/egl_headless.hpp | 3 +++ tests/harness.hpp | 3 +++ tests/main.cpp | 3 +++ tests/test_controller.cpp | 3 +++ tests/test_figure.cpp | 3 +++ tests/test_gl_context.cpp | 3 +++ tests/test_glfw_host.cpp | 3 +++ tests/test_gtk_input.cpp | 3 +++ tests/test_imgui_widget.cpp | 3 +++ tests/test_measure.cpp | 3 +++ tests/test_minmax_pyramid.cpp | 3 +++ tests/test_plot.cpp | 3 +++ tests/test_primitives.cpp | 3 +++ tests/test_qt_pointer.cpp | 3 +++ tests/test_render_smoke.cpp | 3 +++ tests/test_ring_buffer.cpp | 3 +++ tests/test_series.cpp | 3 +++ tests/test_ticks.cpp | 3 +++ tests/test_transform.cpp | 3 +++ tests/test_true_type_font.cpp | 3 +++ tools/coverage.sh | 3 +++ tools/coverage_floor.py | 3 +++ tools/fonts/gen_atlas.py | 6 ++++++ 115 files changed, 367 insertions(+), 2 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0133691 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Martino Ferrari + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 902c836..e439b7b 100644 --- a/README.md +++ b/README.md @@ -139,8 +139,10 @@ them, because its adapters are off and 11 cases need an adapter target (8 in ## Licence and third-party provenance -- **This library** ships **no licence file** — there is no `LICENSE`/`COPYING` in the - repository, so the sources carry no granted licence and a distributor must add one. +- **This library** is **MIT licensed**: the full text is in [`LICENSE`](LICENSE), and + every first-party file (C++, Python and shell) carries its SPDX identifier in the file + header — `// SPDX-License-Identifier: MIT` — so the grant travels with each source file, + not just the repository root. - **Adwaita Mono** (the embedded font, `render::EmbeddedMonoFont`) is under **SIL OFL 1.1**, committed verbatim at [`licences/OFL-1.1.txt`](licences/OFL-1.1.txt). The backend class is named neutrally (`EmbeddedMonoFont`, not "Adwaita Mono") because OFL reserves diff --git a/adapters/glfw/glfw_host.cpp b/adapters/glfw/glfw_host.cpp index 46c56e7..fcc2a34 100644 --- a/adapters/glfw/glfw_host.cpp +++ b/adapters/glfw/glfw_host.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include // Before GLFW's header, so it does not include : that header's macros diff --git a/adapters/glfw/glfw_host.hpp b/adapters/glfw/glfw_host.hpp index 105219e..1b1f65b 100644 --- a/adapters/glfw/glfw_host.hpp +++ b/adapters/glfw/glfw_host.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/adapters/gtk4/gtk_input.hpp b/adapters/gtk4/gtk_input.hpp index 462a7d4..54e0c06 100644 --- a/adapters/gtk4/gtk_input.hpp +++ b/adapters/gtk4/gtk_input.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/adapters/gtk4/gtk_plot_area.cpp b/adapters/gtk4/gtk_plot_area.cpp index dcfd3ad..2f7ebb0 100644 --- a/adapters/gtk4/gtk_plot_area.cpp +++ b/adapters/gtk4/gtk_plot_area.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/adapters/gtk4/gtk_plot_area.hpp b/adapters/gtk4/gtk_plot_area.hpp index 44d2251..a937398 100644 --- a/adapters/gtk4/gtk_plot_area.hpp +++ b/adapters/gtk4/gtk_plot_area.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/adapters/imgui/imgui_plot.cpp b/adapters/imgui/imgui_plot.cpp index ce70da9..1ad5c8c 100644 --- a/adapters/imgui/imgui_plot.cpp +++ b/adapters/imgui/imgui_plot.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/adapters/imgui/imgui_plot.hpp b/adapters/imgui/imgui_plot.hpp index f4b1585..e847754 100644 --- a/adapters/imgui/imgui_plot.hpp +++ b/adapters/imgui/imgui_plot.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/adapters/qt6/qt_plot_widget.cpp b/adapters/qt6/qt_plot_widget.cpp index ab457e0..5511068 100644 --- a/adapters/qt6/qt_plot_widget.cpp +++ b/adapters/qt6/qt_plot_widget.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/adapters/qt6/qt_plot_widget.hpp b/adapters/qt6/qt_plot_widget.hpp index e45c468..376dd73 100644 --- a/adapters/qt6/qt_plot_widget.hpp +++ b/adapters/qt6/qt_plot_widget.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once // The plot headers come first, and must. Qt's reaches diff --git a/adapters/qt6/qt_pointer.hpp b/adapters/qt6/qt_pointer.hpp index da99d58..eedc2e6 100644 --- a/adapters/qt6/qt_pointer.hpp +++ b/adapters/qt6/qt_pointer.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/examples/glfw_demo.cpp b/examples/glfw_demo.cpp index 52bd38d..77e7410 100644 --- a/examples/glfw_demo.cpp +++ b/examples/glfw_demo.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The reference application: the whole library running as a real program, fed by // a 1 MS/s producer thread through the GLFW adapter. // diff --git a/examples/gtk_demo.cpp b/examples/gtk_demo.cpp index 0df94f1..5cffe54 100644 --- a/examples/gtk_demo.cpp +++ b/examples/gtk_demo.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The GTK4 application: the same 1 MS/s stream the other demos draw, as the // content of a GtkApplicationWindow whose header bar carries its own "Fit" // button, with GTK drawing the window chrome around a plot the area renders into diff --git a/examples/imgui_demo.cpp b/examples/imgui_demo.cpp index 0a4c5fd..55b5199 100644 --- a/examples/imgui_demo.cpp +++ b/examples/imgui_demo.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The Dear ImGui application: the same stream the GLFW demo draws, embedded as a // widget inside an ImGui window that also owns a few controls, with ImGui drawing // its own chrome into the same framebuffer. diff --git a/examples/multiplot_demo.cpp b/examples/multiplot_demo.cpp index a0b523e..e3b8a7a 100644 --- a/examples/multiplot_demo.cpp +++ b/examples/multiplot_demo.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The multi-plot application: three plots stacked in one `Figure`, sharing one x // axis, each carrying its own signals and its own legend. // diff --git a/examples/qt_demo.cpp b/examples/qt_demo.cpp index 71661a3..513eb6f 100644 --- a/examples/qt_demo.cpp +++ b/examples/qt_demo.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The Qt application: the same 1 MS/s stream the other demos draw, as the central // widget of a QMainWindow that also carries its own toolbar, with Qt drawing the // window chrome around a plot the widget renders into its own framebuffer. diff --git a/include/plot/core/color.hpp b/include/plot/core/color.hpp index c25911c..f9cfd25 100644 --- a/include/plot/core/color.hpp +++ b/include/plot/core/color.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/core/rect.hpp b/include/plot/core/rect.hpp index 1fe2d84..0dac915 100644 --- a/include/plot/core/rect.hpp +++ b/include/plot/core/rect.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/core/span.hpp b/include/plot/core/span.hpp index fec04c1..4e96ffd 100644 --- a/include/plot/core/span.hpp +++ b/include/plot/core/span.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/core/status.hpp b/include/plot/core/status.hpp index 043ffa8..85b5d7a 100644 --- a/include/plot/core/status.hpp +++ b/include/plot/core/status.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/core/types.hpp b/include/plot/core/types.hpp index abf3972..8cb6aa6 100644 --- a/include/plot/core/types.hpp +++ b/include/plot/core/types.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/data/array_series.hpp b/include/plot/data/array_series.hpp index 9019d07..72b3ef1 100644 --- a/include/plot/data/array_series.hpp +++ b/include/plot/data/array_series.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/data/detail/cover_count.hpp b/include/plot/data/detail/cover_count.hpp index 3c0604e..1ee2747 100644 --- a/include/plot/data/detail/cover_count.hpp +++ b/include/plot/data/detail/cover_count.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #ifdef PLOT_PYRAMID_COUNT_COVERS diff --git a/include/plot/data/detail/merge_count.hpp b/include/plot/data/detail/merge_count.hpp index 0612f72..601551d 100644 --- a/include/plot/data/detail/merge_count.hpp +++ b/include/plot/data/detail/merge_count.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #ifdef PLOT_PYRAMID_COUNT_MERGES diff --git a/include/plot/data/minmax_pyramid.hpp b/include/plot/data/minmax_pyramid.hpp index e305951..f227259 100644 --- a/include/plot/data/minmax_pyramid.hpp +++ b/include/plot/data/minmax_pyramid.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/data/ring_buffer.hpp b/include/plot/data/ring_buffer.hpp index a8b77db..af0fa06 100644 --- a/include/plot/data/ring_buffer.hpp +++ b/include/plot/data/ring_buffer.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/data/series.hpp b/include/plot/data/series.hpp index 493a25c..ebcdcbb 100644 --- a/include/plot/data/series.hpp +++ b/include/plot/data/series.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/data/stream_series.hpp b/include/plot/data/stream_series.hpp index 618a322..4ee96e0 100644 --- a/include/plot/data/stream_series.hpp +++ b/include/plot/data/stream_series.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/gl/api.hpp b/include/plot/gl/api.hpp index 8d91a33..c318600 100644 --- a/include/plot/gl/api.hpp +++ b/include/plot/gl/api.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/gl/caps.hpp b/include/plot/gl/caps.hpp index 864c512..f2953a8 100644 --- a/include/plot/gl/caps.hpp +++ b/include/plot/gl/caps.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/gl/handle.hpp b/include/plot/gl/handle.hpp index 04ddf78..097d126 100644 --- a/include/plot/gl/handle.hpp +++ b/include/plot/gl/handle.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/gl/loader.hpp b/include/plot/gl/loader.hpp index abcafb0..0a82889 100644 --- a/include/plot/gl/loader.hpp +++ b/include/plot/gl/loader.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/input/controller.hpp b/include/plot/input/controller.hpp index 8919f27..deb888a 100644 --- a/include/plot/input/controller.hpp +++ b/include/plot/input/controller.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/input/events.hpp b/include/plot/input/events.hpp index f5ea31c..f807e52 100644 --- a/include/plot/input/events.hpp +++ b/include/plot/input/events.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/math/mat3.hpp b/include/plot/math/mat3.hpp index 73256cd..4f7b003 100644 --- a/include/plot/math/mat3.hpp +++ b/include/plot/math/mat3.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/math/transform.hpp b/include/plot/math/transform.hpp index 1d540cb..9b61390 100644 --- a/include/plot/math/transform.hpp +++ b/include/plot/math/transform.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/math/vec2.hpp b/include/plot/math/vec2.hpp index e144dc1..f58d0ba 100644 --- a/include/plot/math/vec2.hpp +++ b/include/plot/math/vec2.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/plot.hpp b/include/plot/plot.hpp index 6ab53a7..30bf0f6 100644 --- a/include/plot/plot.hpp +++ b/include/plot/plot.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once /// Umbrella header: pulls in every public component of the plot library, in diff --git a/include/plot/plot/annotation.hpp b/include/plot/plot/annotation.hpp index cc433b8..9651cf8 100644 --- a/include/plot/plot/annotation.hpp +++ b/include/plot/plot/annotation.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/plot/axis.hpp b/include/plot/plot/axis.hpp index 411f259..0325a7b 100644 --- a/include/plot/plot/axis.hpp +++ b/include/plot/plot/axis.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/plot/crosshair.hpp b/include/plot/plot/crosshair.hpp index f801667..2f881c1 100644 --- a/include/plot/plot/crosshair.hpp +++ b/include/plot/plot/crosshair.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/plot/cursor.hpp b/include/plot/plot/cursor.hpp index 502aab2..f3fe6e2 100644 --- a/include/plot/plot/cursor.hpp +++ b/include/plot/plot/cursor.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/plot/detail/measure_count.hpp b/include/plot/plot/detail/measure_count.hpp index 0dfdb0d..802d3d5 100644 --- a/include/plot/plot/detail/measure_count.hpp +++ b/include/plot/plot/detail/measure_count.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #ifdef PLOT_COUNT_MEASURE_RECOMPUTES diff --git a/include/plot/plot/figure.hpp b/include/plot/plot/figure.hpp index af1ce1f..b91c145 100644 --- a/include/plot/plot/figure.hpp +++ b/include/plot/plot/figure.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/plot/grid.hpp b/include/plot/plot/grid.hpp index 454de0d..3d6f2ff 100644 --- a/include/plot/plot/grid.hpp +++ b/include/plot/plot/grid.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/plot/legend.hpp b/include/plot/plot/legend.hpp index b189907..682b51d 100644 --- a/include/plot/plot/legend.hpp +++ b/include/plot/plot/legend.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/plot/measure.hpp b/include/plot/plot/measure.hpp index 481fbee..f919a7b 100644 --- a/include/plot/plot/measure.hpp +++ b/include/plot/plot/measure.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/plot/plot.hpp b/include/plot/plot/plot.hpp index c5116dd..5c28ac3 100644 --- a/include/plot/plot/plot.hpp +++ b/include/plot/plot/plot.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/plot/region.hpp b/include/plot/plot/region.hpp index ada79c6..c74e5ac 100644 --- a/include/plot/plot/region.hpp +++ b/include/plot/plot/region.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/plot/ticks.hpp b/include/plot/plot/ticks.hpp index 55b4233..ef39642 100644 --- a/include/plot/plot/ticks.hpp +++ b/include/plot/plot/ticks.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/plot/trace.hpp b/include/plot/plot/trace.hpp index e1a867d..536d48f 100644 --- a/include/plot/plot/trace.hpp +++ b/include/plot/plot/trace.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/render/buffer.hpp b/include/plot/render/buffer.hpp index 6b65de2..dff30dc 100644 --- a/include/plot/render/buffer.hpp +++ b/include/plot/render/buffer.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/render/detail/ring_stats.hpp b/include/plot/render/detail/ring_stats.hpp index 860d589..21dca67 100644 --- a/include/plot/render/detail/ring_stats.hpp +++ b/include/plot/render/detail/ring_stats.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #ifdef PLOT_RING_STATS diff --git a/include/plot/render/detail/text_scale.hpp b/include/plot/render/detail/text_scale.hpp index 2f5ede4..bada9ee 100644 --- a/include/plot/render/detail/text_scale.hpp +++ b/include/plot/render/detail/text_scale.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/render/embedded_mono_font.hpp b/include/plot/render/embedded_mono_font.hpp index eb508b9..a598bd4 100644 --- a/include/plot/render/embedded_mono_font.hpp +++ b/include/plot/render/embedded_mono_font.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/render/primitives.hpp b/include/plot/render/primitives.hpp index 8c1605a..cc4c59f 100644 --- a/include/plot/render/primitives.hpp +++ b/include/plot/render/primitives.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/render/program.hpp b/include/plot/render/program.hpp index 8a1090f..79ecb40 100644 --- a/include/plot/render/program.hpp +++ b/include/plot/render/program.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/render/renderer.hpp b/include/plot/render/renderer.hpp index 1182483..3ee8817 100644 --- a/include/plot/render/renderer.hpp +++ b/include/plot/render/renderer.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/render/shaders.hpp b/include/plot/render/shaders.hpp index d130cc0..28a493d 100644 --- a/include/plot/render/shaders.hpp +++ b/include/plot/render/shaders.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once namespace plot::render { diff --git a/include/plot/render/style.hpp b/include/plot/render/style.hpp index b8509d4..ba2e43b 100644 --- a/include/plot/render/style.hpp +++ b/include/plot/render/style.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/render/text.hpp b/include/plot/render/text.hpp index ae3a082..88ffb98 100644 --- a/include/plot/render/text.hpp +++ b/include/plot/render/text.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include diff --git a/include/plot/render/text_atlas.hpp b/include/plot/render/text_atlas.hpp index 6a135de..a748516 100644 --- a/include/plot/render/text_atlas.hpp +++ b/include/plot/render/text_atlas.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/render/vertex_array.hpp b/include/plot/render/vertex_array.hpp index dd8f651..2e53aa1 100644 --- a/include/plot/render/vertex_array.hpp +++ b/include/plot/render/vertex_array.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/include/plot/text/true_type_font.hpp b/include/plot/text/true_type_font.hpp index faf96ac..c19ca85 100644 --- a/include/plot/text/true_type_font.hpp +++ b/include/plot/text/true_type_font.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/src/core/status.cpp b/src/core/status.cpp index d70432c..dc3cdaf 100644 --- a/src/core/status.cpp +++ b/src/core/status.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include namespace plot { diff --git a/src/data/array_series.cpp b/src/data/array_series.cpp index b21c3c1..a366d89 100644 --- a/src/data/array_series.cpp +++ b/src/data/array_series.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/data/minmax_pyramid.cpp b/src/data/minmax_pyramid.cpp index 8300d12..7bf1fb3 100644 --- a/src/data/minmax_pyramid.cpp +++ b/src/data/minmax_pyramid.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include #include diff --git a/src/data/series.cpp b/src/data/series.cpp index c8eb3c7..8fc0ec3 100644 --- a/src/data/series.cpp +++ b/src/data/series.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/data/stream_series.cpp b/src/data/stream_series.cpp index 42add8e..d86f0a2 100644 --- a/src/data/stream_series.cpp +++ b/src/data/stream_series.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/gl/handle.cpp b/src/gl/handle.cpp index 5ddf280..5cbbb6a 100644 --- a/src/gl/handle.cpp +++ b/src/gl/handle.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/gl/loader.cpp b/src/gl/loader.cpp index 176e552..3ac3781 100644 --- a/src/gl/loader.cpp +++ b/src/gl/loader.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/input/controller.cpp b/src/input/controller.cpp index 97deb01..17b9f13 100644 --- a/src/input/controller.cpp +++ b/src/input/controller.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/math/transform.cpp b/src/math/transform.cpp index 43fb93e..095c054 100644 --- a/src/math/transform.cpp +++ b/src/math/transform.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include namespace plot::math { diff --git a/src/plot/axis.cpp b/src/plot/axis.cpp index 5ccffb7..1e60223 100644 --- a/src/plot/axis.cpp +++ b/src/plot/axis.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include namespace plot { diff --git a/src/plot/figure.cpp b/src/plot/figure.cpp index 88dfa69..2134c8a 100644 --- a/src/plot/figure.cpp +++ b/src/plot/figure.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/plot/grid.cpp b/src/plot/grid.cpp index 9489f9b..26d21e5 100644 --- a/src/plot/grid.cpp +++ b/src/plot/grid.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/plot/measure.cpp b/src/plot/measure.cpp index 98c4b3a..1b16cb6 100644 --- a/src/plot/measure.cpp +++ b/src/plot/measure.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/plot/plot.cpp b/src/plot/plot.cpp index 8eaba7b..0f2026b 100644 --- a/src/plot/plot.cpp +++ b/src/plot/plot.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/plot/ticks.cpp b/src/plot/ticks.cpp index ae6791e..b6ea165 100644 --- a/src/plot/ticks.cpp +++ b/src/plot/ticks.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/render/buffer.cpp b/src/render/buffer.cpp index 859761f..41f335a 100644 --- a/src/render/buffer.cpp +++ b/src/render/buffer.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/render/embedded_mono_font.cpp b/src/render/embedded_mono_font.cpp index 6cfa858..b25c5ed 100644 --- a/src/render/embedded_mono_font.cpp +++ b/src/render/embedded_mono_font.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari +// // GENERATED FILE -- do not edit by hand. // // Regenerate with: tools/fonts/gen_atlas.py diff --git a/src/render/primitives.cpp b/src/render/primitives.cpp index c8c90c9..ea92f22 100644 --- a/src/render/primitives.cpp +++ b/src/render/primitives.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/render/program.cpp b/src/render/program.cpp index 8a70a7f..57abae8 100644 --- a/src/render/program.cpp +++ b/src/render/program.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/render/renderer.cpp b/src/render/renderer.cpp index 0532887..22e7f21 100644 --- a/src/render/renderer.cpp +++ b/src/render/renderer.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/render/shaders.cpp b/src/render/shaders.cpp index 0bb1147..cbce72f 100644 --- a/src/render/shaders.cpp +++ b/src/render/shaders.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include // Both pipelines are `#version 330 core` and stay untouched by the upload diff --git a/src/render/text.cpp b/src/render/text.cpp index b2a9dc1..a5a51a7 100644 --- a/src/render/text.cpp +++ b/src/render/text.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include namespace plot::render { diff --git a/src/render/text_atlas.cpp b/src/render/text_atlas.cpp index 50fb978..848836d 100644 --- a/src/render/text_atlas.cpp +++ b/src/render/text_atlas.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/render/vertex_array.cpp b/src/render/vertex_array.cpp index c72515b..564114a 100644 --- a/src/render/vertex_array.cpp +++ b/src/render/vertex_array.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include #include diff --git a/src/text/stb_truetype_impl.cpp b/src/text/stb_truetype_impl.cpp index df9125b..379bb9d 100644 --- a/src/text/stb_truetype_impl.cpp +++ b/src/text/stb_truetype_impl.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The vendored rasteriser's single implementation unit: the one translation unit // in this project that defines STB_TRUETYPE_IMPLEMENTATION, so the ~5000-line // stb_truetype.h is compiled exactly once, into the optional plot_font_ttf diff --git a/src/text/true_type_font.cpp b/src/text/true_type_font.cpp index 5d285f4..c34b93f 100644 --- a/src/text/true_type_font.cpp +++ b/src/text/true_type_font.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The optional TrueType backend: the one place in the project that parses a font // file at run time, and the only consumer of the vendored third_party/stb_truetype.h // (see src/text/stb_truetype_impl.cpp for its single implementation unit, and diff --git a/tests/egl_headless.cpp b/tests/egl_headless.cpp index e166a08..1ed551b 100644 --- a/tests/egl_headless.cpp +++ b/tests/egl_headless.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include "egl_headless.hpp" #include diff --git a/tests/egl_headless.hpp b/tests/egl_headless.hpp index d51da7f..e134211 100644 --- a/tests/egl_headless.hpp +++ b/tests/egl_headless.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/tests/harness.hpp b/tests/harness.hpp index 4e1aa89..82f7bb5 100644 --- a/tests/harness.hpp +++ b/tests/harness.hpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #pragma once #include #include diff --git a/tests/main.cpp b/tests/main.cpp index d9f0b7b..c2bd730 100644 --- a/tests/main.cpp +++ b/tests/main.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include "harness.hpp" int main() { return plottest::run_all(); } diff --git a/tests/test_controller.cpp b/tests/test_controller.cpp index aae07ce..f0eb2a9 100644 --- a/tests/test_controller.cpp +++ b/tests/test_controller.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include "harness.hpp" #include diff --git a/tests/test_figure.cpp b/tests/test_figure.cpp index 3ab9d8e..04e45c1 100644 --- a/tests/test_figure.cpp +++ b/tests/test_figure.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // `Figure`: several plots stacked in one column, sharing one x range. // // The layout cases pin the geometry the renderer draws with -- the row rects, the diff --git a/tests/test_gl_context.cpp b/tests/test_gl_context.cpp index 02fceae..1604f5f 100644 --- a/tests/test_gl_context.cpp +++ b/tests/test_gl_context.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include "harness.hpp" #include "egl_headless.hpp" diff --git a/tests/test_glfw_host.cpp b/tests/test_glfw_host.cpp index 5cdac33..ede4089 100644 --- a/tests/test_glfw_host.cpp +++ b/tests/test_glfw_host.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The GLFW host's event routing in figure mode: which row's controller a pointer pixel // reaches. // diff --git a/tests/test_gtk_input.cpp b/tests/test_gtk_input.cpp index 5f79530..e221738 100644 --- a/tests/test_gtk_input.cpp +++ b/tests/test_gtk_input.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The GTK adapter's input translation, driven directly. // // Four pieces of it are this project's logic and not a toolkit's, and none of them diff --git a/tests/test_imgui_widget.cpp b/tests/test_imgui_widget.cpp index 410dd35..16f2184 100644 --- a/tests/test_imgui_widget.cpp +++ b/tests/test_imgui_widget.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The Dear ImGui adapter's own logic, pinned against real ImGui frames on the // tests' surfaceless EGL context -- no window, no display server. // diff --git a/tests/test_measure.cpp b/tests/test_measure.cpp index f55711f..2692e9e 100644 --- a/tests/test_measure.cpp +++ b/tests/test_measure.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include "harness.hpp" #include #include diff --git a/tests/test_minmax_pyramid.cpp b/tests/test_minmax_pyramid.cpp index fd5cf2f..2dc8610 100644 --- a/tests/test_minmax_pyramid.cpp +++ b/tests/test_minmax_pyramid.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include "harness.hpp" #include #include diff --git a/tests/test_plot.cpp b/tests/test_plot.cpp index 1da19fd..9dd80d6 100644 --- a/tests/test_plot.cpp +++ b/tests/test_plot.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include "harness.hpp" #include #include diff --git a/tests/test_primitives.cpp b/tests/test_primitives.cpp index 5a9e466..0124271 100644 --- a/tests/test_primitives.cpp +++ b/tests/test_primitives.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // CPU-side contract of the render layer: the staging batches that feed the // instanced line and text pipelines, and the embedded font's metrics and atlas. // Nothing here touches GL, so it runs on any machine that can build the tests. diff --git a/tests/test_qt_pointer.cpp b/tests/test_qt_pointer.cpp index 36d9018..8b9cd2e 100644 --- a/tests/test_qt_pointer.cpp +++ b/tests/test_qt_pointer.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The Qt adapter's pointer translation, driven directly. The widget's cached // pointer anchor is a plain value with no toolkit dependency (see // adapters/qt6/qt_pointer.hpp) precisely so the one thing a screenshot cannot show diff --git a/tests/test_render_smoke.cpp b/tests/test_render_smoke.cpp index f57dabe..af8830b 100644 --- a/tests/test_render_smoke.cpp +++ b/tests/test_render_smoke.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The integration test: the whole stack on the real driver. A 1M-sample series, // the plot layer's layout/ticks/grid, the renderer's visible-range LOD selection // and both vertex-transfer strategies, all asserted by reading pixels back from diff --git a/tests/test_ring_buffer.cpp b/tests/test_ring_buffer.cpp index 4635992..f0a2286 100644 --- a/tests/test_ring_buffer.cpp +++ b/tests/test_ring_buffer.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include "harness.hpp" #include diff --git a/tests/test_series.cpp b/tests/test_series.cpp index fc6d5c6..c203c85 100644 --- a/tests/test_series.cpp +++ b/tests/test_series.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include "harness.hpp" #include #include diff --git a/tests/test_ticks.cpp b/tests/test_ticks.cpp index dbab83c..b4d3cd7 100644 --- a/tests/test_ticks.cpp +++ b/tests/test_ticks.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include "harness.hpp" #include #include diff --git a/tests/test_transform.cpp b/tests/test_transform.cpp index 2b960dd..60c850b 100644 --- a/tests/test_transform.cpp +++ b/tests/test_transform.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + #include "harness.hpp" #include diff --git a/tests/test_true_type_font.cpp b/tests/test_true_type_font.cpp index a0e21ce..8800732 100644 --- a/tests/test_true_type_font.cpp +++ b/tests/test_true_type_font.cpp @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: MIT +// SPDX-FileCopyrightText: 2026 Martino Ferrari + // The optional runtime-font backend, on the real driver and on the real archive: // what a host gets when it points `plot::text::TrueTypeFont` at a font file. // diff --git a/tools/coverage.sh b/tools/coverage.sh index a09a020..8662df6 100755 --- a/tools/coverage.sh +++ b/tools/coverage.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# SPDX-License-Identifier: MIT +# SPDX-FileCopyrightText: 2026 Martino Ferrari + # # Reproducible coverage for src/**, with a floor. # diff --git a/tools/coverage_floor.py b/tools/coverage_floor.py index 4dfc5aa..c5fa28c 100755 --- a/tools/coverage_floor.py +++ b/tools/coverage_floor.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# SPDX-License-Identifier: MIT +# SPDX-FileCopyrightText: 2026 Martino Ferrari + """Gate an lcov report for src/** against the project's coverage floors. The floors are the contract made visible in docs/coverage.md: every file under diff --git a/tools/fonts/gen_atlas.py b/tools/fonts/gen_atlas.py index 1f9a1c6..f8837d8 100755 --- a/tools/fonts/gen_atlas.py +++ b/tools/fonts/gen_atlas.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# SPDX-License-Identifier: MIT +# SPDX-FileCopyrightText: 2026 Martino Ferrari + """Bake the embedded mono font's anti-aliased atlas, at authoring time. Reads a TrueType/OpenType file and writes a C++ translation unit holding a @@ -398,6 +401,9 @@ def emit(geometry, provenance): lines = [] add = lines.append + add("// SPDX-License-Identifier: MIT") + add("// SPDX-FileCopyrightText: 2026 Martino Ferrari") + add("//") add("// GENERATED FILE -- do not edit by hand.") add("//") add(f"// Regenerate with: {SCRIPT}")