Surface i Screen repetien el bit d'alpha opac com a 0xFF000000U o com
(0xFFU << 24). S'afegeix inline constexpr Rendering::OPAQUE_ALPHA a
canvas.hpp i s'usa a les tres ocurrències.
Build + smoke 5s xvfb OK (exit 124).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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>