#include "selfdrive/ui/qt/qt_window.h" void setMainWindow(QWidget *w) { const float scale = util::getenv("SCALE", 1.0f); const QSize sz = QGuiApplication::primaryScreen()->size(); if (Hardware::PC() && scale == 1.0 && !(sz - DEVICE_SCREEN_SIZE).isValid()) { w->setMinimumSize(QSize(640, 480)); // allow resize smaller than fullscreen w->setMaximumSize(DEVICE_SCREEN_SIZE); w->resize(sz); } else { w->setFixedSize(DEVICE_SCREEN_SIZE * 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->setWindowState(Qt::WindowFullScreen); w->setVisible(true); // ensure we have a valid eglDisplay, otherwise the ui will silently fail void *egl = native->nativeResourceForWindow("egldisplay", w->windowHandle()); assert(egl != nullptr); #endif } extern "C" { void set_main_window(void *w) { setMainWindow((QWidget*)w); } }