- Llevem tot el referent a pintar fonts de jdraw

- [NEW] draw::setPaletteEntry()
This commit is contained in:
2023-10-12 10:28:54 +02:00
parent 7b40d4fad4
commit 58c229c08c
2 changed files with 17 additions and 31 deletions

View File

@@ -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<len;++i)
{
char chr = text[i];
if (borde!=0)
{
swapcol(1, borde);
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);
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()
{

View File

@@ -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();