refactor(core/rendering): deduplicar Surface::render via delegació (DUP-02)
Surface::render i Surface::renderWithColorReplace compartien ~30 línies del bucle de blit (clipping, flip, transparent check, escriptura ARGB) i només diferien en l'ARGB final. Ara render() delega a la versió amb remap passant source==target==transparent_color_: qualsevol píxel opac té COLOR != source_color (els transparents ja s'han filtrat), per tant REMAPPED == sub_palette_[COLOR] — resultat idèntic al path original. Verificat amb make build + smoke test de 5s sota xvfb-run (exit 124 = timeout sencer, sense crash). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
9395520a23
commit
d479475dcf
2 files changed
+9
-29
No files matched your search
@@ -19,7 +19,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic
|
||||
| ID | Título | Estado |
|
||||
|----|--------|--------|
|
||||
| COUP-01 | Inversión de dependencia `core/rendering → game/*` | DONE |
|
||||
| DUP-02 | `Surface::render` / `renderWithColorReplace` duplicados | PENDING |
|
||||
| DUP-02 | `Surface::render` / `renderWithColorReplace` duplicados | DONE |
|
||||
| CONV-03 | Shaders MSL como raw strings en `.cpp` + helpers duplicados | PENDING |
|
||||
| DUP-03 | Familia `Text::write*` con bucle UTF-8 repetido 5 veces | PENDING |
|
||||
| COUP-02 | `Screen` instancia `SDL3GPUShader` directamente + `Surface` → `Screen::get()` | PENDING |
|
||||
@@ -31,7 +31,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic
|
||||
| ID | Fichero:línea | Hallazgo | Severidad | Estado | Notas |
|
||||
|----|---------------|----------|-----------|--------|-------|
|
||||
| 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 | PENDING | inner loop compartido |
|
||||
| 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 |
|
||||
@@ -121,4 +121,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`
|
||||
- `<pendent>` — COUP-01b: `RenderInfo` desacoblat de `game/options` + `game/ui/ui_palette`
|
||||
- `9395520` — COUP-01b: `RenderInfo` desacoblat de `game/options` + `game/ui/ui_palette`
|
||||
- `<pendent>` — DUP-02: `Surface::render` delega a `renderWithColorReplace`
|
||||
Reference in new issue
Block a user