diff --git a/docs/audit-core-rendering.md b/docs/audit-core-rendering.md index de9f210..7ac97e1 100644 --- a/docs/audit-core-rendering.md +++ b/docs/audit-core-rendering.md @@ -36,7 +36,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic | 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 | DONE | buffer carregat una volta, pixels+palette del mateix | -| 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 | +| DUP-07 | `crtpi_pipeline.hpp:70-87` + `shader_backend.hpp:30-45` + `crtpi_pipeline.cpp:45-62` | defaults CRT-Pi triples | Importante | DONE | `CrtPiUniforms{}` value-init; init() aplica `CrtPiParams{}` com a única font | ## 2. Hardcoding @@ -134,4 +134,5 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic - `be94a43` — DUP-01 + DUP-06 + HC-03 + HC-10 + PATCH-05: neteja parser GIF (extension single-skip, constants nominals LZW/GCT, signatura sense args morts, un sol parse per construcció de `Surface`) - `8b413af` — HC-02: `Rendering::OPAQUE_ALPHA` a `canvas.hpp` reemplaça `0xFF000000U` repetit - `da66a7c` — INC-06 + INC-07: eliminats assignaments redundants `Sprite::pos_` a `MovingSprite`; designated initializer uniforme -- `` — HC-08: constants nominals a l'MSL de CRT-Pi amb explicació del 768/3 +- `2350f40` — HC-08: constants nominals a l'MSL de CRT-Pi amb explicació del 768/3 +- `` — DUP-07: `CrtPiParams{}` com a única font de veritat dels defaults de CRT-Pi diff --git a/source/core/rendering/sdl3gpu/pipelines/crtpi_pipeline.cpp b/source/core/rendering/sdl3gpu/pipelines/crtpi_pipeline.cpp index 9aed88b..bb29ed2 100644 --- a/source/core/rendering/sdl3gpu/pipelines/crtpi_pipeline.cpp +++ b/source/core/rendering/sdl3gpu/pipelines/crtpi_pipeline.cpp @@ -60,6 +60,10 @@ namespace Rendering { std::cerr << "CrtPiPipeline: creació del pipeline ha fallat: " << SDL_GetError() << '\n'; return false; } + + // Fixem els defaults canònics abans del primer render; si Screen + // crida setParams més tard els sobreescriurà. + setParams(CrtPiParams{}); return true; } diff --git a/source/core/rendering/sdl3gpu/pipelines/crtpi_pipeline.hpp b/source/core/rendering/sdl3gpu/pipelines/crtpi_pipeline.hpp index d94a5f6..99c45d9 100644 --- a/source/core/rendering/sdl3gpu/pipelines/crtpi_pipeline.hpp +++ b/source/core/rendering/sdl3gpu/pipelines/crtpi_pipeline.hpp @@ -67,24 +67,9 @@ namespace Rendering { SDL_GPUDevice* device_{nullptr}; SDL_GPUGraphicsPipeline* pipeline_{nullptr}; - CrtPiUniforms uniforms_{ - .scanline_weight = 6.0F, - .scanline_gap_brightness = 0.12F, - .bloom_factor = 3.5F, - .input_gamma = 2.4F, - .output_gamma = 2.2F, - .mask_brightness = 0.80F, - .curvature_x = 0.05F, - .curvature_y = 0.10F, - .mask_type = 2, - .enable_scanlines = 1, - .enable_multisample = 1, - .enable_gamma = 1, - .enable_curvature = 0, - .enable_sharper = 0, - .texture_width = 0.0F, - .texture_height = 0.0F, - }; + // Inicialitzat amb value-init; init() el sobreescriu aplicant el + // CrtPiParams{} (defaults canònics, una sola font de veritat). + CrtPiUniforms uniforms_{}; }; } // namespace Rendering