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>
17 lines
374 B
C++
17 lines
374 B
C++
#include "core/rendering/canvas.hpp"
|
|
|
|
#include "core/rendering/screen.hpp"
|
|
|
|
namespace Rendering {
|
|
|
|
auto activeCanvas() -> Canvas {
|
|
auto& screen = Screen::get();
|
|
return {
|
|
.pixels = screen.getCanvasArgb(),
|
|
.width = screen.getCanvasWidth(),
|
|
.height = screen.getCanvasHeight(),
|
|
};
|
|
}
|
|
|
|
} // namespace Rendering
|