diff --git a/include/Spectre/Display/Display.h b/include/Spectre/Display/Display.h index 6f5965f..2f5271e 100644 --- a/include/Spectre/Display/Display.h +++ b/include/Spectre/Display/Display.h @@ -5,6 +5,7 @@ #include "DisplayMode.h" #include "DisplayDescription.h" #include +#include #include namespace sp { @@ -38,6 +39,8 @@ public : void setIcon(const std::string& filename); + void setIcon(unsigned int width, unsigned int height, const uint8_t *pixels); + void setDisplayMode(const DisplayMode& mode); const DisplayMode& getDisplayMode() const; diff --git a/source/Display/Display.cpp b/source/Display/Display.cpp index f70078f..050b737 100644 --- a/source/Display/Display.cpp +++ b/source/Display/Display.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include namespace sp { @@ -75,7 +76,16 @@ const std::string& Display::getCaption() const void Display::setIcon(const std::string& filename) { - m_impl->setIcon(filename); + Image img; + + if (img.loadFromFile(filename)) { + setIcon(img.getWidth(), img.getHeight(), img.getPixels()); + } +} + +void Display::setIcon(unsigned int width, unsigned int height, const uint8_t *pixels) +{ + m_impl->setIcon(width, height, pixels); } void Display::setSize(unsigned int width, unsigned int height)