Files
aee-arcade/source/core/rendering/canvas.hpp
T
JailDesignerandClaude Opus 4.7 8b413affa8 refactor(core/rendering): Rendering::OPAQUE_ALPHA constant (HC-02)
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>
2026-04-20 09:55:40 +02:00

29 lines
1.1 KiB
C++

#pragma once
#include <cstdint>
// Abstracció mínima del destí de renderitzat CPU. Tots els blitters del
// projecte (Surface, els HUDs via Screen::fillRect, ...) emeten píxels en
// format ARGB8888 sobre una única superfície lògica que el backend GPU
// després transfereix a la textura "scene". L'accés va per la funció
// activeCanvas() en lloc de Screen::get() directament, per a que els
// consumidors no depenguen del cicle de vida de Screen ni del seu header.
namespace Rendering {
// Bit alpha completament opac, ja preposicionat al canal alt del
// píxel ARGB8888. Qualsevol RGB | OPAQUE_ALPHA produeix el píxel final.
inline constexpr std::uint32_t OPAQUE_ALPHA = 0xFF000000U;
struct Canvas {
std::uint32_t* pixels{nullptr};
int width{0};
int height{0};
};
// Retorna el canvas actiu del joc. En aquesta fase del projecte n'hi ha
// sempre un i només un (el de Screen); en el futur, si cal renderitzar
// off-screen (miniatures, efectes), es podrà pushejar/popar per ací.
[[nodiscard]] auto activeCanvas() -> Canvas;
} // namespace Rendering