Remove all testing stuff

This commit is contained in:
2026-06-17 09:21:12 -07:00
parent 5b0e3353a7
commit ca78f1df0a
4 changed files with 81 additions and 83 deletions

73
todo Normal file
View File

@@ -0,0 +1,73 @@
● Let me survey the project structure and key files before sharing concerns.
Searched for 1 pattern, read 7 files, listed 1 directory (ctrl+o to expand)
● Good. I have a thorough picture now. Here are the concerns, ordered by severity:
---
Compile Blocker
global_data.cpp will not compile. It uses TESTING_COMPONENT (line 51) which is defined in settings.h,
but the file only includes data_structure_and_constants.h. Neither that header nor global_data.cpp
includes settings.h. This is a straightforward fix — add #include "include/settings.h" to
global_data.cpp.
---
Design Concerns
1. time_t in ssbo_target_information cannot go to GLSL without an extension.
time_t on Linux 64-bit is int64_t (8 bytes). Standard GLSL std430 has no 64-bit integer type — it would
require the GL_ARB_gpu_shader_int64 extension. The Radeon 780M does support it, but it's non-standard
and requires explicit enablement in the shader source. The simpler fix: since the Traffic Cop already
discards targets older than 1 hour on the CPU, the timestamp serves no GPU-side purpose. Remove time_t
timestamp from ssbo_target_information — it belongs only in target_data_to_thread_1_structure.
2. Dual state for "which radar is active" risks going out of sync.
Both current_radar (an int) and radar_management[i].selected (a per-entry flag) track the active radar.
Any code that changes one must change the other, and it's easy to miss one. I'd recommend a setter
function (e.g., set_active_radar(int)) that updates both atomically. Otherwise you'll eventually have
current_radar == RADAR_MARINE_TRAFFIC while radar_management[3].selected == 0.
3. uniform_max_range is a single float, but range selection is discrete steps.
The settings define 45 discrete range values per scope (MARINE_A_SCOPE_RANGE_STEP_1 through _4, etc.),
but there's no index variable to track which step is currently selected. The keyboard handler for o/p
keys will need a per-scope step index that it increments/decrements, then looks up the appropriate step
value to write into uniform_max_range. That index variable doesn't exist anywhere yet.
4. Thread safety gap on uniform globals.
The uniform_* globals are written by Thread 6 (future physical controls) protected by
mutex_control_data_to_shaders, but Thread 1 reads them during the render loop without acquiring that
mutex. When Thread 6 is eventually built, this will be a data race. Worth designing the read-side
locking now so you don't have to retrofit it across all scopes later.
---
Missing Infrastructure
5. No CMakeLists.txt. Nothing will compile without it. It needs to link against: OpenGL, GLFW3,
FreeType, GDAL, and link in glad/src/glad.c. This should be built before any component .cpp file.
6. No main.cpp / Thread 1 entry point. Expected at this stage since components are being built
piecemeal, but the CMakeLists.txt will need a placeholder main.cpp to have an executable.
---
Minor
7. Misleading comment in global_data.cpp (line 48). It says "The testing field in slots 1-4 mirrors slot
0 for convenient access" — but the initialization hardcodes TESTING_NONE in slots 1-4; there's no
mirror. Either remove that sentence or actually initialize them to radar_management[0].testing (which
can't be done in a static initializer anyway). Simplest fix: just delete that sentence from the comment.
8. police_location in 01_classes.md is described as float police_location. A position in 2D local
Cartesian space needs two components (x, y). When you get to the police boat shader uniform, that will
need to be a vec2 (two floats), not a single float.
9. simulation_data/simulation_journey is a placeholder. It has no values for target_x/target_y and a
non-parseable timestamp. This is fine for now, but the format needs to be defined when the simulator
component (Thread 3) is built.
---
Summary: The one item to fix immediately before writing code is the settings.h missing include in
global_data.cpp. The SSBO time_t issue should be resolved before the first shader is written. The rest
can be addressed as the relevant components are built. Want me to fix the global_data.cpp include now?
✻ Cooked for 1m 46s