8 Commits
Author SHA1 Message Date
JailDesigner 35d3b359eb chroma min/max amb mostreig bilinear subpíxel 2026-05-17 12:24:22 +02:00
JailDesignerandClaude Opus 4.7 c8882a3f6e refactor(log): migra els subsistemes restants i elimina iostream
Acaba la migració dels std::cout/cerr a Log::*:

- core/locale, core/ui/ui_config, core/rendering/{screen,text,gif,
  surface, sprite/animated_sprite, sdl3gpu/*}.
- game/{options, debug_config, editor/editor_config, levels/level_manager,
  map/{map,tilemap,paint_layer}, entities/entity_manager_loadlevel}.

Severitats coherents: warns per a configs absents amb fallback,
errors per a YAML malformat o E/S fallida, infos per a estats.

Resultat:
- 0 occurrences de std::cout/std::cerr a source/.
- Cap #include <iostream> orfà (eliminat de surface.cpp).
- Output funcional idèntic al històric; AEE_LOG filtra (ex.
  `AEE_LOG=warn` només mostra warnings, `AEE_LOG=*:warn,Tag:info`
  combina globals i overrides).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 09:34:24 +02:00
JailDesigner c9e6261cf1 postfx: scanlines analítiques amb smoothstep a l'estil crtpi, exposant forma per preset YAML 2026-04-20 20:57:14 +02:00
JailDesignerandClaude Opus 4.7 029907d5a0 refactor(core/rendering): Screen desacoblat de SDL3GPUShader concret (COUP-02a)
Screen ja no inclou sdl3gpu/sdl3gpu_shader.hpp ni instancia la classe
concreta. S'afegeix la fàbrica Rendering::makeDefaultShaderBackend()
declarada a shader_backend.hpp i implementada a sdl3gpu_shader.cpp
(únic fitxer que encara coneix la classe concreta).

Per a que Screen no necessite static_cast, releaseWindow() passa a ser
mètode virtual pur de la interfície ShaderBackend (abans només existia
a SDL3GPUShader). SDL3GPUShader::releaseWindow marca override.

Build + smoke 5s xvfb OK (exit 124).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 09:36:11 +02:00
JailDesignerandClaude Opus 4.7 5f46fb22a4 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>
2026-04-20 09:28:52 +02:00
JailDesigner 297dc85e47 GlobalInputs F1-F12 + Escape, Screen sense destruir finestra, escalat al GPU, presets i fons canvas (v0.11.0) 2026-04-19 14:27:16 +02:00
JailDesigner ce5bec1b34 Shader CRT-Pi alternatiu en pipeline separat; selecció via config + presets (v0.6.0) 2026-04-18 23:16:17 +02:00
JailDesigner 6c8ef9ff44 Path SDL3 GPU amb PostFX passthrough; Screen amb init/shutdown explicit (v0.4.0) 2026-04-18 22:50:04 +02:00