HC-08: alpha-mask amb nom a Tilemap::render

`0xFF000000U` passa a `constexpr std::uint32_t ALPHA_MASK` local amb
comentari. No s'ha mogut a defines.hpp perquè només s'usa dins de
Tilemap::render; si apareix a altres llocs es podrà centralitzar.
This commit is contained in:
JailDesigner committed 2026-04-20 18:08:22 +02:00
1 parent beb6a4aad1
commit 6673168ea0
2 files changed
+5 -2

No files matched your search

+4 -1
View File
@@ -126,13 +126,16 @@ void Tilemap::render() const {
const int X_START = std::max(0, -origin_x_);
const int X_END = std::min(width_px_, CANVAS_W - origin_x_);
// Màscara del canal alfa (els píxels transparents del tilemap queden
// amb alpha=0 i cal mantenir el canvas sota visible).
constexpr std::uint32_t ALPHA_MASK = 0xFF000000U;
for (int y = Y_START; y < Y_END; ++y) {
const auto* src_row = &pixels_[static_cast<std::size_t>(y) * static_cast<std::size_t>(width_px_)];
auto* dst_row =
&canvas[(static_cast<std::size_t>(origin_y_ + y) * static_cast<std::size_t>(CANVAS_W)) + static_cast<std::size_t>(origin_x_)];
for (int x = X_START; x < X_END; ++x) {
const auto PIXEL = src_row[x];
if ((PIXEL & 0xFF000000U) != 0U) { dst_row[x] = PIXEL; }
if ((PIXEL & ALPHA_MASK) != 0U) { dst_row[x] = PIXEL; }
}
}
}