Beispiel #1
0
void Gradient::addColorStop(const Gradient::ColorStop& stop) {
  if (m_stops.isEmpty()) {
    m_stopsSorted = true;
  } else {
    m_stopsSorted = m_stopsSorted && compareStops(m_stops.last(), stop);
  }

  m_stops.append(stop);
  m_cachedShader.reset();
}
Beispiel #2
0
void Gradient::addColorStop(const Gradient::ColorStop& stop) {
  if (m_stops.isEmpty()) {
    m_stopsSorted = true;
  } else {
    m_stopsSorted = m_stopsSorted && compareStops(m_stops.last(), stop);
  }

  m_stops.append(stop);
  m_gradient = nullptr;
}
Beispiel #3
0
void Gradient::sortStopsIfNecessary()
{
    if (m_stopsSorted)
        return;

    m_stopsSorted = true;

    if (!m_stops.size())
        return;

    // Shortcut for the ideal case (ordered 2-stop gradient)
    if (m_stops.size() == 2 && compareStops(*m_stops.begin(), *m_stops.end()))
        return;

    std::stable_sort(m_stops.begin(), m_stops.end(), compareStops);
}