diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2013-04-27 11:54:48 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2013-04-27 11:54:48 +0200 |
commit | c7c3bfc9a1558864b06319918900090c7564c6d2 (patch) | |
tree | aa53e2e9395c0197d2ab46585a15293a2423cfd8 /ftnoir_tracker_ht/video_widget.cpp | |
parent | bf45260ce8f235e593a22cdbdf9bcd98d508ae7f (diff) |
Get rid of last remnants of QOpenGL
Diffstat (limited to 'ftnoir_tracker_ht/video_widget.cpp')
-rw-r--r-- | ftnoir_tracker_ht/video_widget.cpp | 63 |
1 files changed, 10 insertions, 53 deletions
diff --git a/ftnoir_tracker_ht/video_widget.cpp b/ftnoir_tracker_ht/video_widget.cpp index 51d92967..01f2516a 100644 --- a/ftnoir_tracker_ht/video_widget.cpp +++ b/ftnoir_tracker_ht/video_widget.cpp @@ -11,59 +11,16 @@ using namespace std; -// ---------------------------------------------------------------------------- -void VideoWidget::initializeGL() +void VideoWidget::update_image(unsigned char *frame, int width, int height) { - glClearColor(0.0, 0.0, 0.0, 0.0); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); -} - -void VideoWidget::resizeGL(int w, int h) -{ - // setup 1 to 1 projection - glViewport(0, 0, w, h); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(0, w, 0, h, -1, 1); - resize_frame(resized_qframe); - glDisable(GL_DEPTH_TEST); - glBegin(GL_QUADS); - glVertex2f(0,0); - glVertex2f(1,0); - glVertex2f(1,1); - glVertex2f(0,1); - glEnd(); -} - -void VideoWidget::paintGL() -{ - QMutexLocker lck(&mtx); - if (resized_qframe.size() == size() || (resized_qframe.width() <= width() && resized_qframe.height() <= height())) - { - glDrawPixels(resized_qframe.width(), resized_qframe.height(), GL_RGB, GL_UNSIGNED_BYTE, resized_qframe.bits()); - } - else - glClear(GL_DEPTH_BUFFER_BIT); - glFlush(); -} - -void VideoWidget::resize_frame(QImage& qframe) -{ - QMutexLocker lck(&mtx); - if (qframe.size() == size() || (qframe.width() <= width() && qframe.height() <= height())) - resized_qframe = qframe.copy(); + QMutexLocker((QMutex*)&mtx); + QImage qframe = QImage(frame, width, height, 3 * width, QImage::Format_RGB888).rgbSwapped().mirrored(); + if (qframe.size() == size() || (qframe.width() <= this->width() && qframe.height() <= this->height())) + qframe = qframe.mirrored(); else - resized_qframe = qframe.scaled(size(), Qt::IgnoreAspectRatio, Qt::FastTransformation).copy(); -} - - -void VideoWidget::updateImage(unsigned char *frame, int width, int height) -{ - QImage foo = QImage(frame, width, height, 3 * width, QImage::Format_RGB888).rgbSwapped().mirrored(); - resize_frame(foo); -} - -void VideoWidget::update() { - updateGL(); + qframe = qframe.scaled(size(), Qt::IgnoreAspectRatio, Qt::FastTransformation).mirrored(); + QPainter painter(&qframe); + painter.setPen(Qt::blue); + painter.setBrush(Qt::blue); + pixmap = QPixmap::fromImage(qframe); } |