refactor(sdl3gpu): extreure shaders MSL i helpers a headers compartits (CONV-03)
Els dos pipelines GPU (PostFX i CrtPi) tenien: - Raw strings MSL incrustades al .cpp amb NOLINTBEGIN(readability- identifier-naming) envoltant ~150 línies cadascun. - Funcions createShaderMSL / createShaderSPIRV duplicades byte a byte en cada .cpp (DUP-04), amb un comentari admetent-ho. - El vertex shader postfx_vs escrit dues voltes, idèntic (DUP-05). S'introdueixen: - source/core/rendering/sdl3gpu/shader_factory.hpp amb els dos helpers inline, per a reutilitzar des de qualsevol pipeline. - source/core/rendering/sdl3gpu/msl/ amb un header per shader (postfx_vert compartit, postfx_frag, crtpi_frag); cada constant es diu kCamelCase i cau per defecte sota el project naming, així que els blocs NOLINT desapareixen (PATCH-07). - Suppresió a cppcheck per a sdl3gpu/msl/* (és MSL, no C++). Els .cpp es redueixen ~190 línies cada un i queden només amb la lògica del pipeline. Build + smoke test de 5s sota xvfb OK (exit 124). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d479475dcf
commit
5f46fb22a4
8 files changed
+377
-395
No files matched your search
@@ -20,7 +20,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic
|
||||
|----|--------|--------|
|
||||
| COUP-01 | Inversión de dependencia `core/rendering → game/*` | DONE |
|
||||
| DUP-02 | `Surface::render` / `renderWithColorReplace` duplicados | DONE |
|
||||
| CONV-03 | Shaders MSL como raw strings en `.cpp` + helpers duplicados | PENDING |
|
||||
| CONV-03 | Shaders MSL como raw strings en `.cpp` + helpers duplicados | DONE |
|
||||
| DUP-03 | Familia `Text::write*` con bucle UTF-8 repetido 5 veces | PENDING |
|
||||
| COUP-02 | `Screen` instancia `SDL3GPUShader` directamente + `Surface` → `Screen::get()` | PENDING |
|
||||
|
||||
@@ -33,8 +33,8 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic
|
||||
| DUP-01 | `gif.cpp:238-276` | 3 ramas del switch extension saltan bloque+subloops idénticos | Importante | PENDING | helper `skipExtensionBlocks` |
|
||||
| DUP-02 | `surface.cpp:80-137` | `render` vs `renderWithColorReplace` ~90% idénticos | Crítico | DONE | `render()` delega amb source==target==transparent |
|
||||
| DUP-03 | `text.cpp:145-289` | bucle UTF-8 repetido en write/writeColored/writeMonoDigits/length/lengthMonoDigits | Importante | PENDING | iterador de glifos |
|
||||
| DUP-04 | `sdl3gpu_shader.cpp:165-201` + `crtpi_pipeline.cpp:165-202` | `createShaderMSL/SPIRV` duplicados | Importante | PENDING | extraer a `shader_factory` |
|
||||
| DUP-05 | `sdl3gpu_shader.cpp:18-35` + `crtpi_pipeline.cpp:17-34` | vertex shader MSL duplicado | Menor | PENDING | compartir string |
|
||||
| DUP-04 | `sdl3gpu_shader.cpp:165-201` + `crtpi_pipeline.cpp:165-202` | `createShaderMSL/SPIRV` duplicados | Importante | DONE | `sdl3gpu/shader_factory.hpp` |
|
||||
| DUP-05 | `sdl3gpu_shader.cpp:18-35` + `crtpi_pipeline.cpp:17-34` | vertex shader MSL duplicado | Menor | DONE | `sdl3gpu/msl/postfx_vert.msl.h` compartit |
|
||||
| DUP-06 | `surface.cpp:14-43` | constructor Surface abre y parsea GIF 2 veces | Importante | PENDING | `loadGif` devuelve pixels+palette |
|
||||
| DUP-07 | `crtpi_pipeline.hpp:70-87` + `shader_backend.hpp:30-45` + `crtpi_pipeline.cpp:45-62` | defaults CRT-Pi triples | Importante | PENDING | single source of truth |
|
||||
|
||||
@@ -63,7 +63,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic
|
||||
| PATCH-04 | `sprite.cpp:47-49` | `Sprite::update` vacío hook no invocado | Menor | PENDING | borrar (ver DEAD-10) |
|
||||
| PATCH-05 | `gif.cpp:12-15` | comentario "reemplaçar macro READ" | Menor | PENDING | limpiar comentario |
|
||||
| PATCH-06 | `gif.cpp:83-86` | guard self-reference defensivo | Menor | WONTFIX | dejar, cambiar `cerr` → logger futuro |
|
||||
| PATCH-07 | `sdl3gpu_shader.cpp:17,162` + `crtpi_pipeline.cpp:16,162` | `NOLINTBEGIN` gigantes sobre MSL | Importante | PENDING | se resuelve con CONV-03 |
|
||||
| PATCH-07 | `sdl3gpu_shader.cpp:17,162` + `crtpi_pipeline.cpp:16,162` | `NOLINTBEGIN` gigantes sobre MSL | Importante | DONE | eliminats amb CONV-03 |
|
||||
| PATCH-08 | `render_info.cpp:64,138-139` | `mono_digits=true` asignado 2 veces | Menor | PENDING | init única |
|
||||
|
||||
## 4. Acoplamiento innecesario
|
||||
@@ -111,7 +111,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic
|
||||
|----|----------|-----------|--------|
|
||||
| CONV-01 | Magic numbers vs "sin magic numbers" | HC-* | cubierto por HC |
|
||||
| CONV-02 | HUD hardcoded vs "configurabilidad desde ficheros" | HC-04 | cubierto por HC-04 |
|
||||
| CONV-03 | Shaders MSL como raw strings en `.cpp` | DUP-04/05, PATCH-07 | PENDING |
|
||||
| CONV-03 | Shaders MSL como raw strings en `.cpp` | DUP-04/05, PATCH-07 | DONE |
|
||||
| CONV-04 | Singletons vs "interfaces + callbacks" | COUP-06 | DEFERRED |
|
||||
| CONV-05 | `core → game` deps | COUP-01 | cubierto por COUP-01 |
|
||||
|
||||
@@ -122,4 +122,5 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic
|
||||
- `9243db1` — docs: full de treball inicial (aquest fitxer)
|
||||
- `9434e4e` — COUP-01a: `Notifier` desacoblat de `game/ui/notification_presets`
|
||||
- `9395520` — COUP-01b: `RenderInfo` desacoblat de `game/options` + `game/ui/ui_palette`
|
||||
- `<pendent>` — DUP-02: `Surface::render` delega a `renderWithColorReplace`
|
||||
- `d479475` — DUP-02: `Surface::render` delega a `renderWithColorReplace`
|
||||
- `<pendent>` — CONV-03 + DUP-04 + DUP-05 + PATCH-07: shaders MSL i helpers extrets a `sdl3gpu/msl/` i `sdl3gpu/shader_factory.hpp`
|
||||
Reference in new issue
Block a user