Font 8bithud, classe Text i overlay RenderInfo (F3, persistit a config.yaml) (v0.7.0)

This commit is contained in:
JailDesigner committed 2026-04-19 00:31:02 +02:00
1 parent ce5bec1b34
commit e6f3c888e6
19 files changed
+712 -6

No files matched your search

+9 -2
View File
@@ -52,6 +52,10 @@ class Surface {
// Vobla la regió indicada al framebuffer ARGB del joc usant la paleta propia.
void render(int x, int y, const SDL_FRect* src_rect = nullptr, SDL_FlipMode flip = SDL_FLIP_NONE) const;
// Igual que render() però substituint els píxels amb valor source_color per
// target_color abans d'aplicar la paleta. Útil per a la classe Text: els
// glifs guarden "tinta" amb un únic índex i es recoloren per paràmetre.
void renderWithColorReplace(int x, int y, Uint8 source_color, Uint8 target_color, const SDL_FRect* src_rect = nullptr, SDL_FlipMode flip = SDL_FLIP_NONE) const;
void clear(Uint8 color);
void putPixel(int x, int y, Uint8 color);
@@ -62,7 +66,7 @@ class Surface {
[[nodiscard]] auto getHeight() const -> int { return surface_data_->height; }
[[nodiscard]] auto getTransparentColor() const -> Uint8 { return transparent_color_; }
void setTransparentColor(Uint8 color = 255) { transparent_color_ = color; }
void setTransparentColor(Uint8 color = 0) { transparent_color_ = color; }
void setPalette(const Palette& palette) { palette_ = palette; }
[[nodiscard]] auto getPaletteColor(Uint8 index) const -> Uint32 { return palette_[index]; }
@@ -73,5 +77,8 @@ class Surface {
std::shared_ptr<SurfaceData> surface_data_;
Palette palette_{};
SubPalette sub_palette_{};
Uint8 transparent_color_{255};
// Convenció de tots els GIFs del projecte (sprites i fonts): l'índex 0
// és el color de fons/transparent. Els tilesets que usen un altre índex
// han de cridar setTransparentColor() explícitament.
Uint8 transparent_color_{0};
};