608b1bffbb
- WAYLAND-IMPLEMENTATION-PLAN.md v2.0: document architecture decision that Wayland is the only supported display path. Remove all framebuffer fallback workarounds (offscreen QPA, redox QPA shim). - qwaylanddisplay.cpp: add fprintf instrumentation for crash diagnosis; skip xkb_context_new on Redox to eliminate potential xkb crash vector. - greeter-ui/main.cpp: remove QT_QPA_PLATFORM=redox workaround. The greeter must use Wayland. Accept the crash until Qt6 is fixed. - Ruled out: relibc calloc (zeroes correctly), libwayland proxy_create (correct), compositor protocol (compliant). Root cause is in Qt6 generated Wayland wrappers passing NULL to wl_proxy_add_listener.
30 lines
875 B
C++
30 lines
875 B
C++
#include <QGuiApplication>
|
|
#include <QQmlApplicationEngine>
|
|
#include <QQmlContext>
|
|
#include <QQuickStyle>
|
|
#include <QQuickWindow>
|
|
|
|
#include "greeter_backend.h"
|
|
|
|
int main(int argc, char *argv[]) {
|
|
qputenv("QT_QUICK_CONTROLS_STYLE", QByteArrayLiteral("Basic"));
|
|
qputenv("QSG_RHI_BACKEND", QByteArrayLiteral("software"));
|
|
qputenv("QT_QUICK_BACKEND", QByteArrayLiteral("software"));
|
|
QQuickWindow::setGraphicsApi(QSGRendererInterface::Software);
|
|
|
|
QGuiApplication app(argc, argv);
|
|
QQuickStyle::setStyle(QStringLiteral("Basic"));
|
|
|
|
GreeterBackend backend;
|
|
QQmlApplicationEngine engine;
|
|
engine.rootContext()->setContextProperty(QStringLiteral("greeterBackend"), &backend);
|
|
engine.load(QUrl(QStringLiteral("qrc:/Main.qml")));
|
|
|
|
if (engine.rootObjects().isEmpty()) {
|
|
return 1;
|
|
}
|
|
|
|
backend.initialize();
|
|
return app.exec();
|
|
}
|