From efc30f4a83953363d665290f99b91c7b52652cc2 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Tue, 24 Nov 2020 22:07:03 -0800 Subject: [PATCH] Qt cleanup (#2622) * scale * contain weston hack in one file * rest * no show * missed one --- selfdrive/ui/SConscript | 10 ++++++++-- selfdrive/ui/qt/qt_window.cc | 25 +++++++++++++++++++++++++ selfdrive/ui/qt/qt_window.hpp | 9 +++++++++ selfdrive/ui/qt/setup/setup.cc | 26 ++------------------------ selfdrive/ui/qt/spinner.cc | 30 +++--------------------------- selfdrive/ui/qt/text.cc | 28 ++-------------------------- selfdrive/ui/qt/ui.cc | 22 +++------------------- selfdrive/ui/qt/window.cc | 1 + selfdrive/ui/qt/window.hpp | 10 ++-------- 9 files changed, 55 insertions(+), 106 deletions(-) create mode 100644 selfdrive/ui/qt/qt_window.cc create mode 100644 selfdrive/ui/qt/qt_window.hpp diff --git a/selfdrive/ui/SConscript b/selfdrive/ui/SConscript index 414f862823..a5465feabf 100644 --- a/selfdrive/ui/SConscript +++ b/selfdrive/ui/SConscript @@ -40,7 +40,7 @@ if arch in ["x86_64", "Darwin", "larch64"]: "-DQT_CORE_LIB" ] qt_env['CXXFLAGS'] += qt_flags - + qt_env['LIBPATH'] += ['#selfdrive/ui'] src = ['ui.cc', 'paint.cc', 'sidebar.cc', '#phonelibs/nanovg/nanovg.c'] @@ -71,7 +71,13 @@ else: else: qt_libs += [f"Qt5{m}" for m in qt_modules] - qt_src = ["qt/ui.cc", "qt/window.cc", "qt/qt_sound.cc", "qt//offroad/keyboard.cc", "qt/offroad/input_field.cc", "qt/offroad/settings.cc", "qt/offroad/onboarding.cc", "qt/offroad/wifi.cc", "qt/offroad/wifiManager.cc"] + src + qt_env.Library("qt_widgets", + ["qt/qt_window.cc", "qt/qt_sound.cc", "qt/offroad/keyboard.cc", "qt/offroad/input_field.cc", + "qt/offroad/wifi.cc", "qt/offroad/wifiManager.cc"], + LIBS=qt_libs) + qt_libs.append("qt_widgets") + + qt_src = ["qt/ui.cc", "qt/window.cc", "qt/offroad/settings.cc", "qt/offroad/onboarding.cc"] + src qt_env.Program("_ui", qt_src, LIBS=qt_libs + libs) # spinner and text window diff --git a/selfdrive/ui/qt/qt_window.cc b/selfdrive/ui/qt/qt_window.cc new file mode 100644 index 0000000000..6438862300 --- /dev/null +++ b/selfdrive/ui/qt/qt_window.cc @@ -0,0 +1,25 @@ +#include + +#ifdef QCOM2 +#include +#include +#include +#endif + +#include "qt_window.hpp" + +void setMainWindow(QWidget *w) { + float scale = getenv("SCALE") != NULL ? std::stof(getenv("SCALE")) : 1.0; + w->setFixedSize(vwp_w*scale, vwp_h*scale); + w->show(); + +#ifdef QCOM2 + QPlatformNativeInterface *native = QGuiApplication::platformNativeInterface(); + wl_surface *s = reinterpret_cast(native->nativeResourceForWindow("surface", w.windowHandle())); + wl_surface_set_buffer_transform(s, WL_OUTPUT_TRANSFORM_270); + wl_surface_commit(s); + w.showFullScreen(); +#endif +} + + diff --git a/selfdrive/ui/qt/qt_window.hpp b/selfdrive/ui/qt/qt_window.hpp new file mode 100644 index 0000000000..a4485959bc --- /dev/null +++ b/selfdrive/ui/qt/qt_window.hpp @@ -0,0 +1,9 @@ +#include + +#ifdef QCOM2 + const int vwp_w = 2160, vwp_h = 1080; +#else + const int vwp_w = 1920, vwp_h = 1080; +#endif + +void setMainWindow(QWidget *w); diff --git a/selfdrive/ui/qt/setup/setup.cc b/selfdrive/ui/qt/setup/setup.cc index 051f2f7ace..ff6a1fa08b 100644 --- a/selfdrive/ui/qt/setup/setup.cc +++ b/selfdrive/ui/qt/setup/setup.cc @@ -11,12 +11,7 @@ #include #include "setup.hpp" - -#ifdef QCOM2 -#include -#include -#include -#endif +#include "qt_window.hpp" int download(std::string url) { CURL *curl; @@ -166,25 +161,8 @@ Setup::Setup(QWidget *parent) { } int main(int argc, char *argv[]) { -#ifdef QCOM2 - int w = 2160, h = 1080; -#else - int w = 1920, h = 1080; -#endif - QApplication a(argc, argv); - Setup setup; - setup.setFixedSize(w, h); - setup.show(); - -#ifdef QCOM2 - QPlatformNativeInterface *native = QGuiApplication::platformNativeInterface(); - wl_surface *s = reinterpret_cast(native->nativeResourceForWindow("surface", setup.windowHandle())); - wl_surface_set_buffer_transform(s, WL_OUTPUT_TRANSFORM_270); - wl_surface_commit(s); - setup.showFullScreen(); -#endif - + setMainWindow(&setup); return a.exec(); } diff --git a/selfdrive/ui/qt/spinner.cc b/selfdrive/ui/qt/spinner.cc index 540b58f140..77151f3bba 100644 --- a/selfdrive/ui/qt/spinner.cc +++ b/selfdrive/ui/qt/spinner.cc @@ -7,14 +7,8 @@ #include #include -#ifdef QCOM2 -#include -#include -#include -#endif - #include "spinner.hpp" - +#include "qt_window.hpp" Spinner::Spinner(QWidget *parent) { QGridLayout *main_layout = new QGridLayout(); @@ -100,25 +94,7 @@ void Spinner::update(int n) { int main(int argc, char *argv[]) { QApplication a(argc, argv); - - Spinner *spinner = new Spinner(); - - // TODO: get size from QScreen, doesn't work on tici -#ifdef QCOM2 - int w = 2160, h = 1080; -#else - int w = 1920, h = 1080; -#endif - spinner->setFixedSize(w, h); - spinner->show(); - -#ifdef QCOM2 - QPlatformNativeInterface *native = QGuiApplication::platformNativeInterface(); - wl_surface *s = reinterpret_cast(native->nativeResourceForWindow("surface", spinner->windowHandle())); - wl_surface_set_buffer_transform(s, WL_OUTPUT_TRANSFORM_270); - wl_surface_commit(s); - spinner->showFullScreen(); -#endif - + Spinner spinner; + setMainWindow(&spinner); return a.exec(); } diff --git a/selfdrive/ui/qt/text.cc b/selfdrive/ui/qt/text.cc index ab7d9f4c4b..87288643d2 100644 --- a/selfdrive/ui/qt/text.cc +++ b/selfdrive/ui/qt/text.cc @@ -6,26 +6,13 @@ #include #include #include -#include - -#ifdef QCOM2 -#include -#include -#include -#endif +#include "qt_window.hpp" int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget *window = new QWidget(); - - // TODO: get size from QScreen, doesn't work on tici -#ifdef QCOM2 - int w = 2160, h = 1080; -#else - int w = 1920, h = 1080; -#endif - window->setFixedSize(w, h); + setMainWindow(window); QVBoxLayout *main_layout = new QVBoxLayout(); @@ -75,16 +62,5 @@ int main(int argc, char *argv[]) { } )"); - window->show(); - - -#ifdef QCOM2 - QPlatformNativeInterface *native = QGuiApplication::platformNativeInterface(); - wl_surface *s = reinterpret_cast(native->nativeResourceForWindow("surface", window->windowHandle())); - wl_surface_set_buffer_transform(s, WL_OUTPUT_TRANSFORM_270); - wl_surface_commit(s); - window->showFullScreen(); -#endif - return a.exec(); } diff --git a/selfdrive/ui/qt/ui.cc b/selfdrive/ui/qt/ui.cc index de4f6950ee..28b673a75f 100644 --- a/selfdrive/ui/qt/ui.cc +++ b/selfdrive/ui/qt/ui.cc @@ -1,14 +1,10 @@ #include -#ifdef QCOM2 -#include -#include -#include -#endif - #include "window.hpp" +#include "qt_window.hpp" int main(int argc, char *argv[]) { + // TODO: should probably be done in gl window QSurfaceFormat fmt; #ifdef __APPLE__ fmt.setVersion(3, 2); @@ -20,20 +16,8 @@ int main(int argc, char *argv[]) { QSurfaceFormat::setDefaultFormat(fmt); QApplication a(argc, argv); - MainWindow w; - w.setFixedSize(vwp_w, vwp_h); - w.show(); - + setMainWindow(&w); a.installEventFilter(&w); - -#ifdef QCOM2 - QPlatformNativeInterface *native = QGuiApplication::platformNativeInterface(); - wl_surface *s = reinterpret_cast(native->nativeResourceForWindow("surface", w.windowHandle())); - wl_surface_set_buffer_transform(s, WL_OUTPUT_TRANSFORM_270); - wl_surface_commit(s); - w.showFullScreen(); -#endif - return a.exec(); } diff --git a/selfdrive/ui/qt/window.cc b/selfdrive/ui/qt/window.cc index e5ee59cb0e..5fdcb27b97 100644 --- a/selfdrive/ui/qt/window.cc +++ b/selfdrive/ui/qt/window.cc @@ -10,6 +10,7 @@ #include #include "window.hpp" +#include "qt_window.hpp" #include "offroad/input_field.hpp" #include "offroad/settings.hpp" #include "offroad/onboarding.hpp" diff --git a/selfdrive/ui/qt/window.hpp b/selfdrive/ui/qt/window.hpp index 1f5a4c10ee..d0854ba127 100644 --- a/selfdrive/ui/qt/window.hpp +++ b/selfdrive/ui/qt/window.hpp @@ -1,5 +1,7 @@ #pragma once +#include + #include #include #include @@ -11,14 +13,6 @@ #include "offroad/settings.hpp" #include "offroad/onboarding.hpp" -#ifdef QCOM2 -const int vwp_w = 2160; -#else -const int vwp_w = 1920; -#endif -const int vwp_h = 1080; - - class GLWindow : public QOpenGLWidget, protected QOpenGLFunctions { Q_OBJECT