void DownloadedPiecesBar::updatePieceColors() { m_pieceColors = QVector<int>(256); for (int i = 0; i < 256; ++i) { float ratio = (i / 255.0); m_pieceColors[i] = mixTwoColors(m_bgColor, m_pieceColor, ratio); } }
void PieceAvailabilityBar::updatePieceColors() { piece_colors = std::vector<int>(256); for (int i = 0; i < 256; ++i) { float ratio = (i / 255.0); piece_colors[i] = mixTwoColors(bg_color, piece_color, ratio); } }
void DownloadedPiecesBar::updateImage() { // qDebug() << "updateImage"; QImage image2(width() - 2, 1, QImage::Format_RGB888); if (m_pieces.isEmpty()) { image2.fill(0xffffff); m_image = image2; update(); return; } QVector<float> scaled_pieces = bitfieldToFloatVector(m_pieces, image2.width()); QVector<float> scaled_pieces_dl = bitfieldToFloatVector(m_downloadedPieces, image2.width()); // filling image for (int x = 0; x < scaled_pieces.size(); ++x) { float pieces2_val = scaled_pieces.at(x); float pieces2_val_dl = scaled_pieces_dl.at(x); if (pieces2_val_dl != 0) { float fill_ratio = pieces2_val + pieces2_val_dl; float ratio = pieces2_val_dl / fill_ratio; int mixedColor = mixTwoColors(m_pieceColor, m_dlPieceColor, ratio); mixedColor = mixTwoColors(m_bgColor, mixedColor, fill_ratio); image2.setPixel(x, 0, mixedColor); } else { image2.setPixel(x, 0, m_pieceColors[pieces2_val * 255]); } } m_image = image2; }