Example #1
0
void Button::SetTexture(Resources &res, const string &fileName, State state)
{
    auto &texture = res.GetFile(fileName);
    if (!texture.Found())
        return;

    vector<char> buf(texture.GetSize());
    texture.GetData(buf.data());

    sf::Image img;
    img.loadFromMemory(buf.data(), buf.size());
    img.createMaskFromColor(sf::Color::Magenta, 0);

    switch (state) {
    case Button::HOVER:
        mTextureHover.loadFromImage(img);
        break;
    case Button::CLICK:
        mTextureClick.loadFromImage(img);
        break;
    default:
        mTexture.loadFromImage(img);
        break;
    }
}