chenxiaolong / DualBootPatcher

Patches Android ROMs for dual boot support
https://dbp.noobdev.io
Other
524 stars 470 forks source link

Rewrite boot UI #1386

Open chenxiaolong opened 5 years ago

chenxiaolong commented 5 years ago

The current boot UI implementation is based on TWRP. The original thought was to take advantage of its rendering and layout code to reduce the effort in adding support for hardware and integrating DBP features into the UI. However, this has been more trouble than it's worth. The UI code was heavily forked due to how entangled the UI and business logic is and updates to dependencies sometimes result in rendering issues. With the android-9.0.0_r30 libpixelflinger, the DBP fork of TWRP fails to render anything. I'm planning on dropping this code and starting from scratch.

The plan is to:

Currently undecided:

Milestones:

chenxiaolong commented 5 years ago

I'm abandoning the idea of using imgui and am currently looking for pure 2D alternatives.

chenxiaolong commented 5 years ago

Qt5 + linuxfb + evdev is also out of the question.

EDIT: Maybe Qt5 is not out of the question. Just got RGBA8888 working (for jflte). HiDPI scaling just works, which is really nice. Maybe I'll just implement the missing pixel formats.

chenxiaolong commented 5 years ago

Qt5 + Qt Quick on jflte (RGBA8888 big endian) with working HiDPI UI and font scaling: 20190218_210435

The qtquickcontrols2 Material theme does not render properly with the software renderer (QT_QUICK_BACKEND=software), so I won't be using that. The "Universal" theme that mimic's Windows' UI works great though and achieves almost 60fps even with scrolling and animations.