]> git.sesse.net Git - nageru/blobdiff - nageru/analyzer.cpp
Fix a Clang 19 warning.
[nageru] / nageru / analyzer.cpp
index f2d3ae699cf8a0d1e12ca4394f23aac2f95e0197..a9bfb6da25147f2ff01f067b928695f62e8ed480 100644 (file)
@@ -1,34 +1,38 @@
 #include "analyzer.h"
 
+#include <QComboBox>
+#include <QEvent>
 #include <QDialogButtonBox>
+#include <QImage>
+#include <QMainWindow>
 #include <QMouseEvent>
+#include <QPixmap>
+#include <QPushButton>
 #include <QPen>
+#include <QRgb>
 #include <QSurface>
 #include <QTimer>
 
+#include <algorithm>
+#include <functional>
 #include <movit/resource_pool.h>
 #include <movit/util.h>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include <assert.h>
+#include <math.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
 
 #include "shared/context.h"
 #include "flags.h"
 #include "mixer.h"
 #include "ui_analyzer.h"
 
-// QCustomPlot includes qopenglfunctions.h, which #undefs all of the epoxy
-// definitions (ugh) and doesn't put back any others (ugh). Add the ones we
-// need back.
-
-#define glBindBuffer epoxy_glBindBuffer
-#define glBindFramebuffer epoxy_glBindFramebuffer
-#define glBufferData epoxy_glBufferData
-#define glDeleteBuffers epoxy_glDeleteBuffers
-#define glDisable epoxy_glDisable
-#define glGenBuffers epoxy_glGenBuffers
-#define glGetError epoxy_glGetError
-#define glReadPixels epoxy_glReadPixels
-#define glUnmapBuffer epoxy_glUnmapBuffer
-#define glWaitSync epoxy_glWaitSync
-
 using namespace std;
 
 Analyzer::Analyzer()
@@ -67,13 +71,9 @@ Analyzer::Analyzer()
        signal_changed();
        ui->grabbed_frame_label->installEventFilter(this);
 
-        glGenBuffers(1, &pbo);
-        glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, pbo);
-        glBufferData(GL_PIXEL_PACK_BUFFER_ARB, global_flags.width * global_flags.height * 4, nullptr, GL_STREAM_READ);
-
-       ui->histogram->xAxis->setVisible(true);
-       ui->histogram->yAxis->setVisible(false);
-       ui->histogram->xAxis->setRange(0, 255);
+       glGenBuffers(1, &pbo);
+       glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, pbo);
+       glBufferData(GL_PIXEL_PACK_BUFFER_ARB, global_flags.width * global_flags.height * 4, nullptr, GL_STREAM_READ);
 }
 
 Analyzer::~Analyzer()
@@ -186,38 +186,14 @@ void Analyzer::grab_clicked()
        glBindFramebuffer(GL_FRAMEBUFFER, 0);
        check_error();
 
-       QVector<double> r_vec(256), g_vec(256), b_vec(256), x_vec(256);
-       double max = 0.0;
+       vector<double> r_vec(256), g_vec(256), b_vec(256);
        for (unsigned i = 0; i < 256; ++i) {
-               x_vec[i] = i;
                r_vec[i] = log(r_hist[i] + 1.0);
                g_vec[i] = log(g_hist[i] + 1.0);
                b_vec[i] = log(b_hist[i] + 1.0);
-
-               max = std::max(max, r_vec[i]);
-               max = std::max(max, g_vec[i]);
-               max = std::max(max, b_vec[i]);
        }
 
-       ui->histogram->clearGraphs();
-       ui->histogram->addGraph();
-       ui->histogram->graph(0)->setData(x_vec, r_vec);
-       ui->histogram->graph(0)->setPen(QPen(Qt::red));
-       ui->histogram->graph(0)->setBrush(QBrush(QColor(255, 127, 127, 80)));
-       ui->histogram->addGraph();
-       ui->histogram->graph(1)->setData(x_vec, g_vec);
-       ui->histogram->graph(1)->setPen(QPen(Qt::green));
-       ui->histogram->graph(1)->setBrush(QBrush(QColor(127, 255, 127, 80)));
-       ui->histogram->addGraph();
-       ui->histogram->graph(2)->setData(x_vec, b_vec);
-       ui->histogram->graph(2)->setPen(QPen(Qt::blue));
-       ui->histogram->graph(2)->setBrush(QBrush(QColor(127, 127, 255, 80)));
-
-       ui->histogram->xAxis->setVisible(true);
-       ui->histogram->yAxis->setVisible(false);
-       ui->histogram->xAxis->setRange(0, 255);
-       ui->histogram->yAxis->setRange(0, max);
-       ui->histogram->replot();
+       ui->histogram->set_histograms(std::move(r_vec), std::move(g_vec), std::move(b_vec));
 
        resource_pool->release_2d_texture(fbo_tex);
        check_error();
@@ -262,7 +238,7 @@ bool Analyzer::eventFilter(QObject *watched, QEvent *event)
                ui->blue_label->setText(u8"—");
                ui->hex_label->setText(u8"#—");
        }
-        return false;
+       return false;
 }
 
 void Analyzer::grab_pixel(int x, int y)