tici: fix ui rotation (#2184)

* rotate ui 90 degree

* put rotation behind ifdef

* Also ifdef that

* ui intrinsic_matrix

* that doesnt do anything

* Keep parent on non qcom
This commit is contained in:
Willem Melching 2020-09-16 17:46:08 +02:00 committed by GitHub
parent bacc387ee6
commit 9bbb166303
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 1 deletions

View file

@ -17,11 +17,21 @@ extern "C"{
#include "sidebar.hpp"
// TODO: this is also hardcoded in common/transformations/camera.py
// TODO: choose based on frame input size
#ifdef QCOM2
const mat3 intrinsic_matrix = (mat3){{
2648.0, 0.0, 1928.0/2,
0.0, 2648.0, 1208.0/2,
0.0, 0.0, 1.0
}};
#else
const mat3 intrinsic_matrix = (mat3){{
910., 0., 582.,
0., 910., 437.,
0., 0., 1.
}};
#endif
const uint8_t alert_colors[][4] = {
[STATUS_OFFROAD] = {0x07, 0x23, 0x39, 0xf1},

View file

@ -19,13 +19,21 @@ volatile sig_atomic_t do_exit = 0;
MainWindow::MainWindow(QWidget *parent) : QWidget(parent) {
main_layout = new QStackedLayout;
#ifdef QCOM2
QLabel * label = new QLabel(this);
main_layout->addWidget(label);
GLWindow * glWindow = new GLWindow;
glWindow->setLabel(label);
glWindow->show();
#else
GLWindow * glWindow = new GLWindow(this);
main_layout->addWidget(glWindow);
#endif
SettingsWindow * settingsWindow = new SettingsWindow(this);
main_layout->addWidget(settingsWindow);
main_layout->setMargin(0);
setLayout(main_layout);
QObject::connect(glWindow, SIGNAL(openSettings()), this, SLOT(openSettings()));
@ -52,6 +60,10 @@ GLWindow::GLWindow(QWidget *parent) : QOpenGLWidget(parent) {
timer = new QTimer(this);
QObject::connect(timer, SIGNAL(timeout()), this, SLOT(timerUpdate()));
#ifdef QCOM2
setFixedWidth(vwp_w);
setFixedHeight(vwp_h);
#endif
}
GLWindow::~GLWindow() {
@ -59,6 +71,10 @@ GLWindow::~GLWindow() {
doneCurrent();
}
void GLWindow::setLabel(QLabel * l){
label = l;
}
void GLWindow::initializeGL() {
initializeOpenGLFunctions();
std::cout << "OpenGL version: " << glGetString(GL_VERSION) << std::endl;
@ -78,6 +94,13 @@ void GLWindow::initializeGL() {
void GLWindow::timerUpdate(){
ui_update(ui_state);
update();
if (label != NULL){
QImage img = grabFramebuffer();
QTransform transform;
transform.rotate(90);
label->setPixmap(QPixmap::fromImage(img).transformed(transform));
}
}
void GLWindow::resizeGL(int w, int h) {

View file

@ -2,6 +2,7 @@
#include <QWidget>
#include <QTimer>
#include <QLabel>
#include <QGuiApplication>
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
@ -39,6 +40,7 @@ class GLWindow : public QOpenGLWidget, protected QOpenGLFunctions
public:
using QOpenGLWidget::QOpenGLWidget;
explicit GLWindow(QWidget *parent = 0);
void setLabel(QLabel *l);
~GLWindow();
protected:
@ -52,6 +54,7 @@ private:
QTimer * timer;
UIState * ui_state;
QtSound sound;
QLabel * label = NULL;
public slots:
void timerUpdate();