feat: added rendering add die buttons to dice_gui

This commit is contained in:
Sara Gerretsen 2025-10-27 21:43:29 +01:00
parent 451c71254c
commit ddd44d2d0c

View file

@ -1,4 +1,6 @@
#include "dice_gui.h"
#include "SDL3/SDL_render.h"
#include "ceramic/style.h"
#include "dice_data.h"
#include <ceramic/elements.h>
#include <ceramic/resources.h>
@ -7,19 +9,41 @@
extern SDL_Renderer *renderer;
SDL_Texture *dieImages[8];
SDL_Texture *hoveredDieImages[8];
Clay_Color const dieImageColors[8]{
{230, 184, 48, 255},
{177, 56, 52, 255},
{115, 177, 52, 255},
{52, 177, 125, 255},
{52, 177, 176, 255},
{52, 93, 177, 255},
{177, 52, 140, 255},
{95, 52, 177, 255},
};
char const *dieImagePaths[8]{
"assets/icons/d2.svg",
"assets/icons/d4.svg",
"assets/icons/d6.svg",
"assets/icons/d8.svg",
"assets/icons/d10.svg",
"assets/icons/d12.svg",
"assets/icons/d20.svg",
"assets/icons/d10.svg",
};
static void LoadDieImagesIfNeeded() {
static bool diceImagesLoaded{false};
if(!diceImagesLoaded) {
diceImagesLoaded = true;
dieImages[0] = cera::LoadAndStoreTexture(renderer, "assets/icons/d2.svg");
dieImages[1] = cera::LoadAndStoreTexture(renderer, "assets/icons/d4.svg");
dieImages[2] = cera::LoadAndStoreTexture(renderer, "assets/icons/d6.svg");
dieImages[3] = cera::LoadAndStoreTexture(renderer, "assets/icons/d8.svg");
dieImages[4] = cera::LoadAndStoreTexture(renderer, "assets/icons/d10.svg");
dieImages[5] = cera::LoadAndStoreTexture(renderer, "assets/icons/d12.svg");
dieImages[6] = cera::LoadAndStoreTexture(renderer, "assets/icons/d20.svg");
dieImages[7] = cera::LoadAndStoreTexture(renderer, "assets/icons/d100.svg");
Clay_Color color{};
for(size_t i{0}; i < 8; ++i) {
color = dieImageColors[i];
dieImages[i] = cera::LoadAndStoreTexture(renderer, dieImagePaths[i]);
SDL_SetTextureColorMod(dieImages[i], color.r, color.g, color.b);
hoveredDieImages[i] = cera::LoadAndStoreTexture(renderer, dieImagePaths[i]);
color = cera::ToHoveredColor(dieImageColors[i]);
SDL_SetTextureColorMod(hoveredDieImages[i], color.r, color.g, color.b);
}
}
}