summaryrefslogtreecommitdiffhomepage
path: root/ftnoir_tracker_ht/video_widget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ftnoir_tracker_ht/video_widget.cpp')
-rw-r--r--ftnoir_tracker_ht/video_widget.cpp63
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);
}