refactor(core/rendering): Surface desacoblat de Screen via Canvas (COUP-02b / COUP-03)

Surface::renderWithColorReplace usava Screen::get().getCanvasArgb() i
companys per a obtenir el buffer destí. S'introdueix una abstracció
mínima:

- source/core/rendering/canvas.hpp: struct Canvas amb pixels/width/
  height i la fàbrica activeCanvas() que retorna el canvas actiu.
- source/core/rendering/canvas.cpp: implementació que delega a Screen.

Surface ara inclou canvas.hpp en lloc de screen.hpp i crida
Rendering::activeCanvas(). L'indirecció permet, més endavant, empènyer
canvases alternatius (off-screen, efectes) sense tocar Surface; ara
mateix es comporta idèntic al codi anterior.

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

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
JailDesignerandClaude Opus 4.7 committed 2026-04-20 09:38:11 +02:00
1 parent 029907d5a0
commit 81fe826d17
5 files changed
+50 -7

No files matched your search

+1
View File
@@ -39,6 +39,7 @@ set(APP_SOURCES
source/core/input/key_config.cpp
source/core/input/global_inputs.cpp
source/core/rendering/screen.cpp
source/core/rendering/canvas.cpp
source/core/rendering/notifier.cpp
source/core/rendering/render_info.cpp
source/core/rendering/gif.cpp