Exemplo n.º 1
0
std::vector<Image> ColorGradientList::pixmaps(const glm::uvec2 & size) const
{
    std::vector<Image> pixmaps;

    for (const auto & pair : m_gradients)
    {
        const AbstractColorGradient * gradient = pair.second.get();

        Image gradientData(size.x, size.y, gl::GL_RGB, gl::GL_UNSIGNED_INT);

        for (size_t i = 0; i < size.y; ++i)
        {
            gradient->fillPixelData(gradientData.data() + i * size.x * sizeof(std::uint32_t), size.x);
        }

        pixmaps.push_back(gradientData);
    }

    return pixmaps;
}
Exemplo n.º 2
0
void ColorGradientPreparation::fillPixmaps(std::vector<std::vector<unsigned char>> & pixmaps) const
{
    pixmaps.clear();

    for (const auto & pair : m_gradients.gradients())
    {
        if (!m_whitelist.empty() && m_whitelist.count(pair.first) == 0)
        {
            continue;
        }

        const gloperate::AbstractColorGradient * gradient = pair.second;

        std::vector<unsigned char> gradientData(m_iconSize.first * m_iconSize.second * sizeof(std::uint32_t));

        for (size_t i = 0; i < m_iconSize.second; ++i)
        {
            gradient->fillPixelData(gradientData.data()+i*m_iconSize.first*sizeof(std::uint32_t), m_iconSize.first);
        }

        pixmaps.push_back(gradientData);
    }
}