Ejemplo n.º 1
0
void FpsMeter::setupChart() {
    // set up axes
    QValueAxis* xAxis = new QValueAxis();
    xAxis->setMax(CONCURRENT_FPS_VALUES);
    xAxis->setVisible(false);
    QValueAxis* yAxis = new QValueAxis();
    yAxis->setMax(100);

    // set up chart
    mFpsChart->legend()->hide();
    mFpsChart->addSeries(mFpsLineSeries);
    mFpsChart->addSeries(mAverageFpsLineSeries);

    mFpsChart->setAxisX(xAxis, mFpsLineSeries);
    mFpsChart->setAxisY(yAxis, mFpsLineSeries);
    mFpsChart->setAxisX(xAxis, mAverageFpsLineSeries);
    mFpsChart->setAxisY(yAxis, mAverageFpsLineSeries);

    // set up chart view
    mFpsChartView = new QChartView(mFpsChart);
    mFpsChartView->setRenderHint(QPainter::Antialiasing);

    // zero out history and line series to create "valid" starting data
    for(int i = 0; i < CONCURRENT_FPS_VALUES; i++) {
        mFpsHistory[i] = 0;
        mFpsLineSeries->append(i, 0);
    }

    // create two points in the average fps line series to draw a straight line
    mAverageFpsLineSeries->append(0, 0);
    mAverageFpsLineSeries->append(CONCURRENT_FPS_VALUES, 0);

    // add the chart widget to the layout
    layout()->addWidget(mFpsChartView);

    // and finally, conform visibility to initial checkbox state
    mFpsChartView->setVisible(mEnableCheckBox->isChecked());
}