summaryrefslogtreecommitdiffhomepage
path: root/tracker-aruco/ar_video_widget.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2016-07-16 23:44:31 +0200
committerStanislaw Halik <sthalik@misaki.pl>2016-07-16 23:54:27 +0200
commit754ae1a54132eb41332267fc70a42595017c5a6e (patch)
tree78e3dc7284d396f22d69230661176218f73f18f7 /tracker-aruco/ar_video_widget.cpp
parent16bb3e13dd2a7ed8fa3652e313d592dd81c73a07 (diff)
gui, tracker/{aruco,pt}, api: detect whether widget is visible on screen
Sadly, it's only implemented right now on win32. Remove "set enabled" code for the video widget since it only works for explicit window minimization, not covering by other windows.
Diffstat (limited to 'tracker-aruco/ar_video_widget.cpp')
-rw-r--r--tracker-aruco/ar_video_widget.cpp69
1 files changed, 0 insertions, 69 deletions
diff --git a/tracker-aruco/ar_video_widget.cpp b/tracker-aruco/ar_video_widget.cpp
deleted file mode 100644
index 2e87fdca..00000000
--- a/tracker-aruco/ar_video_widget.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (c) 2014 Stanislaw Halik
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- */
-
-#include "ar_video_widget.h"
-
-void ArucoVideoWidget::update_image(const cv::Mat& frame)
-{
- QMutexLocker foo(&mtx);
- if (!fresh)
- {
- _frame = frame.clone();
- fresh = true;
- }
-}
-
-void ArucoVideoWidget::update_and_repaint()
-{
- QImage qframe;
-
- {
- QMutexLocker foo(&mtx);
- if (_frame.cols*_frame.rows <= 0 || !fresh)
- return;
- fresh = false;
- qframe = QImage(_frame.cols, _frame.rows, QImage::Format_RGB888);
- uchar* data = qframe.bits();
- const unsigned pitch = qframe.bytesPerLine();
- unsigned char *input = _frame.data;
- const unsigned chans = _frame.channels();
- const unsigned rows = _frame.rows, cols = _frame.cols;
- const unsigned step = _frame.step;
- for (unsigned y = 0; y < rows; y++)
- {
- const unsigned step_ = y * step;
- const unsigned pitch_ = y * pitch;
- for (unsigned x = 0; x < cols; x++)
- {
- data[pitch_ + x * 3 + 0] = input[step_ + x * chans + 2];
- data[pitch_ + x * 3 + 1] = input[step_ + x * chans + 1];
- data[pitch_ + x * 3 + 2] = input[step_ + x * chans + 0];
- }
- }
- }
-
- qframe = qframe.scaled(size(), Qt::IgnoreAspectRatio, Qt::FastTransformation);
-
- {
- QMutexLocker foo(&mtx);
- texture = qframe;
- }
-
- update();
-}
-
-void ArucoVideoWidget::paintEvent(QPaintEvent* e)
-{
- QMutexLocker foo(&mtx);
- QPainter(this).drawImage(e->rect(), texture);
-}
-
-ArucoVideoWidget::ArucoVideoWidget(QWidget* parent): QWidget(parent), fresh(false)
-{
- connect(&timer, SIGNAL(timeout()), this, SLOT(update_and_repaint()));
- timer.start(60);
-}