From 58c229c08c8763334193dc734313f9364f751299 Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Thu, 12 Oct 2023 10:28:54 +0200 Subject: [PATCH] - Llevem tot el referent a pintar fonts de jdraw - [NEW] draw::setPaletteEntry() --- source/jdraw.cpp | 39 +++++++++------------------------------ source/jdraw.h | 9 ++++++++- 2 files changed, 17 insertions(+), 31 deletions(-) diff --git a/source/jdraw.cpp b/source/jdraw.cpp index bf8f245..cd6e09f 100644 --- a/source/jdraw.cpp +++ b/source/jdraw.cpp @@ -27,7 +27,7 @@ namespace draw uint8_t sel_color = 0; // Color seleccionat per defecte uint8_t transparent = 0; // El color transparent - surface *textsurf = nullptr; // Surface on guardar el gif amb la font + //surface *textsurf = nullptr; // Surface on guardar el gif amb la font SDL_Rect viewport; @@ -55,13 +55,13 @@ namespace draw sel_color = transparent = 0; for (int i=0;i<256;++i) color_indices[i] = i; - textsurf = loadSurface("font.gif"); + //textsurf = loadSurface("font.gif"); } // Finalització del sistema void quit() { - if (textsurf) freeSurface(textsurf); + //if (textsurf) freeSurface(textsurf); // Si la superficie "screen" existia, alliberem la seua memòria if (screen != nullptr) @@ -223,6 +223,12 @@ namespace draw free(buffer); } + // Estableix una entrada de la paleta del sistema + void setPaletteEntry(const uint8_t index, const uint8_t r, const uint8_t g, const uint8_t b) + { + palette[index] = (r << 16) + (g << 8) + b; + } + // Esborra la superficie "destination" amb el color especificat void cls(const uint8_t color) { @@ -407,33 +413,6 @@ namespace draw for (int i=0; i<256; ++i) if (decPalEntry(i, 16)) fading_out = true; } - void print(const char* text, const int x, const int y, const Uint8 color, const Uint8 borde) - { - surface* tmp = source; - source = textsurf; - swapcol(1, color); - const int len = strlen(text); - for (int i=0;i>4)*6); - draw(x+i*4, y-1, 4, 6, (chr&15)*4, (chr>>4)*6); - draw(1+x+i*4, y-1, 4, 6, (chr&15)*4, (chr>>4)*6); - draw(-1+x+i*4, y, 4, 6, (chr&15)*4, (chr>>4)*6); - draw(1+x+i*4, y, 4, 6, (chr&15)*4, (chr>>4)*6); - draw(-1+x+i*4, y+1, 4, 6, (chr&15)*4, (chr>>4)*6); - draw(x+i*4, y+1, 4, 6, (chr&15)*4, (chr>>4)*6); - draw(1+x+i*4, y+1, 4, 6, (chr&15)*4, (chr>>4)*6); - swapcol(1, color); - } - draw(x+i*4, y, 4, 6, (chr&15)*4, (chr>>4)*6); - } - source = tmp; - } - // Refresca la pantalla void render() { diff --git a/source/jdraw.h b/source/jdraw.h index f7cdad6..a5f560a 100644 --- a/source/jdraw.h +++ b/source/jdraw.h @@ -67,6 +67,13 @@ namespace draw /// @param filename nom de l'arxiu GIF d'on carregar la paleta void loadPalette(const std::string &filename); + /// @brief Estableix una entrada de la paleta del sistema + /// @param index l'index de l'entrada de la paleta + /// @param r la component roja de l'entrada de la paleta + /// @param g la component verda de l'entrada de la paleta + /// @param b la component blava de l'entrada de la paleta + void setPaletteEntry(const uint8_t index, const uint8_t r, const uint8_t g, const uint8_t b); + /// @brief Esborra la superficie "destination" amb el color especificat /// @param color color a usar per a borrar la superficie de destinació void cls(const uint8_t color); @@ -96,7 +103,7 @@ namespace draw void fadein(); void fadeout(); - void print(const char* text, const int x, const int y, const uint8_t color, const uint8_t borde); + //void print(const char* text, const int x, const int y, const uint8_t color, const uint8_t borde); /// @brief Refresca la pantalla void render();