#include #include #include #include #include #define STB_IMAGE_IMPLEMENTATION #include #include #include namespace icons { ImTextureID LOGO; ImTextureID PLAY; ImTextureID STOP; ImTextureID MENU; ImTextureID MUTED; ImTextureID UNMUTED; ImTextureID NORMAL_TUNING; ImTextureID CENTER_TUNING; GLuint loadTexture(std::string path) { int w,h,n; stbi_uc* data = stbi_load(path.c_str(), &w, &h, &n, 0); GLuint texId; glGenTextures(1, &texId); glBindTexture(GL_TEXTURE_2D, texId); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, (uint8_t*)data); stbi_image_free(data); return texId; } bool load(std::string resDir) { if (!std::filesystem::is_directory(resDir)) { spdlog::error("Inavlid resource directory: {0}", resDir); return false; } LOGO = (ImTextureID)(uintptr_t)loadTexture(resDir + "/icons/sdrpp.png"); PLAY = (ImTextureID)(uintptr_t)loadTexture(resDir + "/icons/play.png"); STOP = (ImTextureID)(uintptr_t)loadTexture(resDir + "/icons/stop.png"); MENU = (ImTextureID)(uintptr_t)loadTexture(resDir + "/icons/menu.png"); MUTED = (ImTextureID)(uintptr_t)loadTexture(resDir + "/icons/muted.png"); UNMUTED = (ImTextureID)(uintptr_t)loadTexture(resDir + "/icons/unmuted.png"); NORMAL_TUNING = (ImTextureID)(uintptr_t)loadTexture(resDir + "/icons/normal_tuning.png"); CENTER_TUNING = (ImTextureID)(uintptr_t)loadTexture(resDir + "/icons/center_tuning.png"); return true; } }