From ddd44d2d0c8a8d3170a13b65c34252c8ac4d44e4 Mon Sep 17 00:00:00 2001 From: Sara Date: Mon, 27 Oct 2025 21:43:29 +0100 Subject: [PATCH] feat: added rendering add die buttons to dice_gui --- src/dice_gui.cpp | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/src/dice_gui.cpp b/src/dice_gui.cpp index 72ea5ce..eeeda08 100644 --- a/src/dice_gui.cpp +++ b/src/dice_gui.cpp @@ -1,4 +1,6 @@ #include "dice_gui.h" +#include "SDL3/SDL_render.h" +#include "ceramic/style.h" #include "dice_data.h" #include #include @@ -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); + } } }