diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..1979edb --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "external/color"] + path = external/color + url = git@github.com:Sani7/cpp_color_lib.git diff --git a/external/color b/external/color new file mode 160000 index 0000000..4f4ee4e --- /dev/null +++ b/external/color @@ -0,0 +1 @@ +Subproject commit 4f4ee4e01f8fa5b0c1fab31ff0bab62615864abf diff --git a/external/color/CMakeLists.txt b/external/color/CMakeLists.txt deleted file mode 100644 index ef9c075..0000000 --- a/external/color/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -add_library(Color STATIC) - -target_compile_options(Color PRIVATE $<$: - -Wall -Wextra -pedantic-errors -Wconversion -Wsign-conversion - >) - -target_sources(Color - PRIVATE - ${CMAKE_CURRENT_LIST_DIR}/color.cpp - -) - -target_include_directories(Color - PUBLIC - ${CMAKE_CURRENT_LIST_DIR} -) \ No newline at end of file diff --git a/external/color/color.cpp b/external/color/color.cpp deleted file mode 100644 index 4f30061..0000000 --- a/external/color/color.cpp +++ /dev/null @@ -1,368 +0,0 @@ -#include "color.hpp" - -Color::Color() : p_color(0) { -} - -Color::Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha) - : Color((red << 24) | (green << 16) | (blue << 8) | alpha) { -} -Color::Color(uint32_t color) : p_color(color) { -} - -Color::Color(std::string hex) { - if (hex.length() == 6) { - hex = "FF" + hex; - } - p_color = (uint32_t)std::stoul(hex, nullptr, 16); -} - -Color::Color(Colors color) { - switch (color) { - case Colors::Aquamarine: - Color(0x70, 0xDB, 0x93); - break; - case Colors::Baker_s_Chocolate: - Color(0x5C, 0x33, 0x17); - break; - case Colors::Black: - Color(0x00, 0x00, 0x00); - break; - case Colors::Blue: - Color(0x00, 0x00, 0xFF); - break; - case Colors::Blue_Violet: - Color(0x9F, 0x5F, 0x9F); - break; - case Colors::Brass: - Color(0xB5, 0xA6, 0x42); - break; - case Colors::Bright_Gold: - Color(0xD9, 0xD9, 0x19); - break; - case Colors::Brown: - Color(0xA6, 0x2A, 0x2A); - break; - case Colors::Bronze: - Color(0x8C, 0x78, 0x53); - break; - case Colors::Bronze_II: - Color(0xA6, 0x7D, 0x3D); - break; - case Colors::Cadet_Blue: - Color(0x5F, 0x9F, 0x9F); - break; - case Colors::Cool_Copper: - Color(0xD9, 0x87, 0x19); - break; - case Colors::Copper: - Color(0xB8, 0x73, 0x33); - break; - case Colors::Coral: - Color(0xFF, 0x7F, 0x00); - break; - case Colors::Corn_Flower_Blue: - Color(0x42, 0x42, 0x6F); - break; - case Colors::Cyan: - Color(0x00, 0xFF, 0xFF); - break; - case Colors::Dark_Brown: - Color(0x5C, 0x40, 0x33); - break; - case Colors::Dark_Green: - Color(0x2F, 0x4F, 0x2F); - break; - case Colors::Dark_Green_Copper: - Color(0x4A, 0x76, 0x6E); - break; - case Colors::Dark_Olive_Green: - Color(0x4F, 0x4F, 0x2F); - break; - case Colors::Dark_Orchid: - Color(0x99, 0x32, 0xCD); - break; - case Colors::Dark_Purple: - Color(0x87, 0x1F, 0x78); - break; - case Colors::Dark_Slate_Blue: - Color(0x6B, 0x23, 0x8E); - break; - case Colors::Dark_Slate_Grey: - Color(0x2F, 0x4F, 0x4F); - break; - case Colors::Dark_Tan: - Color(0x97, 0x69, 0x4F); - break; - case Colors::Dark_Turquoise: - Color(0x70, 0x93, 0xDB); - break; - case Colors::Dark_Wood: - Color(0x85, 0x5E, 0x42); - break; - case Colors::Dim_Grey: - Color(0x54, 0x54, 0x54); - break; - case Colors::Dusty_Rose: - Color(0x85, 0x63, 0x63); - break; - case Colors::Feldspar: - Color(0xD1, 0x92, 0x75); - break; - case Colors::Firebrick: - Color(0x8E, 0x23, 0x23); - break; - case Colors::Forest_Green: - Color(0x23, 0x8E, 0x23); - break; - case Colors::Gold: - Color(0xCD, 0x7F, 0x32); - break; - case Colors::Goldenrod: - Color(0xDB, 0xDB, 0x70); - break; - case Colors::Grey: - Color(0xC0, 0xC0, 0xC0); - break; - case Colors::Green: - Color(0x00, 0xFF, 0x00); - break; - case Colors::Green_Copper: - Color(0x52, 0x7F, 0x76); - break; - case Colors::Green_Yellow: - Color(0x93, 0xDB, 0x70); - break; - case Colors::Hunter_Green: - Color(0x21, 0x5E, 0x21); - break; - case Colors::Indian_Red: - Color(0x4E, 0x2F, 0x2F); - break; - case Colors::Khaki: - Color(0x9F, 0x9F, 0x5F); - break; - case Colors::Light_Blue: - Color(0xC0, 0xD9, 0xD9); - break; - case Colors::Light_Grey: - Color(0xA8, 0xA8, 0xA8); - break; - case Colors::Light_Steel_Blue: - Color(0x8F, 0x8F, 0xBD); - break; - case Colors::Light_Wood: - Color(0xE9, 0xC2, 0xA6); - break; - case Colors::Lime_Green: - Color(0x32, 0xCD, 0x32); - break; - case Colors::Magenta: - Color(0xFF, 0x00, 0xFF); - break; - case Colors::Mandarian_Orange: - Color(0xE4, 0x78, 0x33); - break; - case Colors::Maroon: - Color(0x8E, 0x23, 0x6B); - break; - case Colors::Medium_Aquamarine: - Color(0x32, 0xCD, 0x99); - break; - case Colors::Medium_Blue: - Color(0x32, 0x32, 0xCD); - break; - case Colors::Medium_Forest_Green: - Color(0x6B, 0x8E, 0x23); - break; - case Colors::Medium_Goldenrod: - Color(0xEA, 0xEA, 0xAE); - break; - case Colors::Medium_Orchid: - Color(0x93, 0x70, 0xDB); - break; - case Colors::Medium_Seagreen: - Color(0x42, 0x6F, 0x42); - break; - case Colors::Medium_Slate_Blue: - Color(0x7F, 0x00, 0xFF); - break; - case Colors::Medium_Spring_Green: - Color(0x7F, 0xFF, 0x00); - break; - case Colors::Medium_Turquoise: - Color(0x70, 0xDB, 0xDB); - break; - case Colors::Medium_Violet_Red: - Color(0xDB, 0x70, 0x93); - break; - case Colors::Medium_Wood: - Color(0xA6, 0x80, 0x64); - break; - case Colors::Midnight_Blue: - Color(0x2F, 0x2F, 0x4F); - break; - case Colors::Navy_Blue: - Color(0x23, 0x23, 0x8E); - break; - case Colors::Neon_Blue: - Color(0x4D, 0x4D, 0xFF); - break; - case Colors::Neon_Pink: - Color(0xFF, 0x6E, 0xC7); - break; - case Colors::New_Midnight_Blue: - Color(0x00, 0x00, 0x9C); - break; - case Colors::New_Tan: - Color(0xEB, 0xC7, 0x9E); - break; - case Colors::Old_Gold: - Color(0xCF, 0xB5, 0x3B); - break; - case Colors::Orange: - Color(0xFF, 0x7F, 0x00); - break; - case Colors::Orange_Red: - Color(0xFF, 0x24, 0x00); - break; - case Colors::Orchid: - Color(0xDB, 0x70, 0xDB); - break; - case Colors::Pale_Green: - Color(0x8F, 0xBC, 0x8F); - break; - case Colors::Pink: - Color(0xBC, 0x8F, 0x8F); - break; - case Colors::Plum: - Color(0xEA, 0xAD, 0xEA); - break; - case Colors::Quartz: - Color(0xD9, 0xD9, 0xF3); - break; - case Colors::Red: - Color(0xFF, 0x00, 0x00); - break; - case Colors::Rich_Blue: - Color(0x59, 0x59, 0xAB); - break; - case Colors::Salmon: - Color(0x6F, 0x42, 0x42); - break; - case Colors::Scarlet: - Color(0x8C, 0x17, 0x17); - break; - case Colors::Sea_Green: - Color(0x23, 0x8E, 0x68); - break; - case Colors::Semi_Sweet_Chocolate: - Color(0x6B, 0x42, 0x26); - break; - case Colors::Sienna: - Color(0x8E, 0x6B, 0x23); - break; - case Colors::Silver: - Color(0xE6, 0xE8, 0xFA); - break; - case Colors::Sky_Blue: - Color(0x32, 0x99, 0xCC); - break; - case Colors::Slate_Blue: - Color(0x00, 0x7F, 0xFF); - break; - case Colors::Spicy_Pink: - Color(0xFF, 0x1C, 0xAE); - break; - case Colors::Spring_Green: - Color(0x00, 0xFF, 0x7F); - break; - case Colors::Steel_Blue: - Color(0x23, 0x6B, 0x8E); - break; - case Colors::Summer_Sky: - Color(0x38, 0xB0, 0xDE); - break; - case Colors::Tan: - Color(0xDB, 0x93, 0x70); - break; - case Colors::Thistle: - Color(0xD8, 0xBF, 0xD8); - break; - case Colors::Turquoise: - Color(0xAD, 0xEA, 0xEA); - break; - case Colors::Very_Dark_Brown: - Color(0x5C, 0x40, 0x33); - break; - case Colors::Very_Light_Grey: - Color(0xCD, 0xCD, 0xCD); - break; - case Colors::Violet: - Color(0x4F, 0x2F, 0x4F); - break; - case Colors::Violet_Red: - Color(0xCC, 0x32, 0x99); - break; - case Colors::Wheat: - Color(0xD8, 0xD8, 0xBF); - break; - case Colors::White: - Color(0xFF, 0xFF, 0xFF); - break; - case Colors::Yellow: - Color(0xFF, 0xFF, 0x00); - break; - case Colors::Yellow_Green: - Color(0x99, 0xCC, 0x32); - break; - case Colors::Dark_Yellow: - Color(0x99, 0xCC, 0x32); - break; - } -} - -uint32_t Color::color() const { - return p_color; -} - -uint8_t Color::red() const { - return (uint8_t)((p_color >> 24) & 0xFF); -} - -uint8_t Color::green() const { - return (uint8_t)((p_color >> 16) & 0xFF); -} - -uint8_t Color::blue() const { - return (uint8_t)((p_color >> 8) & 0xFF); -} - -uint8_t Color::alpha() const { - return p_color & 0xFF; -} - -void Color::set_red(uint8_t color) { - p_color = (color << 24) | (p_color & 0x00FFFFFF); -} - -void Color::set_green(uint8_t color) { - p_color = (color << 16) | (p_color & 0xFF00FFFF); -} - -void Color::set_blue(uint8_t color) { - p_color = (color << 8) | (p_color & 0xFFFF00FF); -} - -void Color::set_alpha(uint8_t color) { - p_color = color | (p_color & 0xFFFFFF00); -} - -std::string Color::to_hex() const { - char buffer[11]; - snprintf(buffer, 11, "0x%08X", p_color); - return std::string(buffer); -} - -bool Color::operator==(const Color &color) const { - return p_color == color.p_color; -} \ No newline at end of file diff --git a/external/color/color.hpp b/external/color/color.hpp deleted file mode 100644 index 4c42433..0000000 --- a/external/color/color.hpp +++ /dev/null @@ -1,132 +0,0 @@ -#pragma once - -#include -#include - -class Color { - public: - enum Colors { - Aquamarine, - Baker_s_Chocolate, - Black, - Blue, - Blue_Violet, - Brass, - Bright_Gold, - Brown, - Bronze, - Bronze_II, - Cadet_Blue, - Cool_Copper, - Copper, - Coral, - Corn_Flower_Blue, - Cyan, - Dark_Brown, - Dark_Green, - Dark_Green_Copper, - Dark_Olive_Green, - Dark_Orchid, - Dark_Purple, - Dark_Slate_Blue, - Dark_Slate_Grey, - Dark_Tan, - Dark_Turquoise, - Dark_Wood, - Dim_Grey, - Dusty_Rose, - Feldspar, - Firebrick, - Forest_Green, - Gold, - Goldenrod, - Grey, - Green, - Green_Copper, - Green_Yellow, - Hunter_Green, - Indian_Red, - Khaki, - Light_Blue, - Light_Grey, - Light_Steel_Blue, - Light_Wood, - Lime_Green, - Magenta, - Mandarian_Orange, - Maroon, - Medium_Aquamarine, - Medium_Blue, - Medium_Forest_Green, - Medium_Goldenrod, - Medium_Orchid, - Medium_Seagreen, - Medium_Slate_Blue, - Medium_Spring_Green, - Medium_Turquoise, - Medium_Violet_Red, - Medium_Wood, - Midnight_Blue, - Navy_Blue, - Neon_Blue, - Neon_Pink, - New_Midnight_Blue, - New_Tan, - Old_Gold, - Orange, - Orange_Red, - Orchid, - Pale_Green, - Pink, - Plum, - Quartz, - Red, - Rich_Blue, - Salmon, - Scarlet, - Sea_Green, - Semi_Sweet_Chocolate, - Sienna, - Silver, - Sky_Blue, - Slate_Blue, - Spicy_Pink, - Spring_Green, - Steel_Blue, - Summer_Sky, - Tan, - Thistle, - Turquoise, - Very_Dark_Brown, - Very_Light_Grey, - Violet, - Violet_Red, - Wheat, - White, - Yellow, - Yellow_Green, - Dark_Yellow - }; - Color(); - Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha = 0); - Color(uint32_t color); - Color(Colors color); - Color(std::string hex); - - uint32_t color() const; - uint8_t red() const; - uint8_t green() const; - uint8_t blue() const; - uint8_t alpha() const; - - void set_red(uint8_t color); - void set_green(uint8_t color); - void set_blue(uint8_t color); - void set_alpha(uint8_t color); - - std::string to_hex() const; - - bool operator==(const Color &color) const; - private: - uint32_t p_color; -}; \ No newline at end of file