- [FIX] Ficar correctament el color transparent al volcar a pantalla

- [NEW] Rejilla de tiles
This commit is contained in:
2025-11-01 19:36:20 +01:00
parent ed1ee498f8
commit 68f5b2ff0f
4 changed files with 59 additions and 9 deletions

View File

@@ -564,6 +564,22 @@ namespace draw
}
}
void draw(const int dx, const int dy, const int w, const int h, const int sx, const int sy, const int zoom)
{
// Si no hi ha superficie d'oritge especificada, no fem res, o petarà el mame
if (source == nullptr) return;
for (int y=0; y<h; ++y) {
for (int x=0; x<w; ++x) {
const uint8_t pixel = pget(source, sx+x, sy+y);
for (int zx=0; zx<zoom; ++zx)
for (int zy=0; zy<zoom; ++zy) {
pset(destination, dx+zx+x*zoom, dy+zy+y*zoom, pixel);
}
}
}
}
// Pinta tota la superficie "source" en la superficie "destination", posició (x,y).
void draw(const int x, const int y)
{

View File

@@ -124,6 +124,16 @@ namespace draw
/// @param flip si s'ha de fer flip en hortizontal o vertical (o ambdos)
void draw(const int dx, const int dy, const int w, const int h, const int sx, const int sy, const draw::flip flip = draw::flip::none);
/// @brief Pinta un troç de la superficie "source" en la superficie "destination", amb zoom.
/// @param dx coordenada x de la destinació
/// @param dy coordenada y de la destinació
/// @param w ample del quadrat d'oritge a pintar
/// @param h alt del quadrat d'oritge a pintar
/// @param sx coordenada x de l'oritge
/// @param sy coordenada y de l'oritge
/// @param zoom zoom a aplicar al pintar
void draw(const int dx, const int dy, const int w, const int h, const int sx, const int sy, const int zoom);
/// @brief Pinta tota la superficie "source" en la superficie "destination", posició (x,y).
/// @param x coordenada x de la destinació
/// @param y coordenada y de la destinació