예제 #1
0
파일: Skin.cpp 프로젝트: OSSIA/Score
static bool pulse(QBrush& ref, bool pulse)
{
  bool invert = false;
  auto col = ref.color();
  auto alpha = col.alphaF();
  if (pulse)
  {
    alpha += 0.02;
    if (alpha >= 1)
    {
      invert = true;
      alpha = 1;
    }
    col.setAlphaF(alpha);
  }
  else
  {
    alpha -= 0.02;
    if (alpha <= 0.5)
    {
      invert = true;
      alpha = 0.5;
    }
    col.setAlphaF(alpha);
  }
  ref.setColor(col);
  return invert;
}
예제 #2
0
QVector<qreal> ColorGradient::bitsF(uint length) const
{
    if (!isValid())
        return QVector<qreal>();
        
    auto bits = QVector<qreal>{};
    for (auto i = 0u; i < length; ++i)
    {
        qreal position = (qreal)i / length;
        auto color = interpolateColor(position);
        bits << color.redF() << color.greenF() << color.blueF() << color.alphaF();
    }
    
    return bits;
}