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:
1 parent
beb6a4aad1
commit
6673168ea0
2 files changed
+5
-2
No files matched your search
@@ -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; }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user