Commit Graph

42 Commits

Author SHA1 Message Date
bigbiff
673c7ae01e Merge tag 'android-11.0.0_r16' into android-10.0
Android 11.0.0 release 16 - twrp bringup patch
2020-12-16 19:06:18 -05:00
bigbiff
20edca8f34 minui: fix bad merge from aosp10.
Tested charger on flame and graphics show properly when device is
powered off.

Change-Id: Ic1a46497a6bce88992b2d1a9052cba2a1a6af8b7
2020-09-08 15:08:53 +00:00
bigbiff
d58ba18272 AOSP10 TWRP Merge: fix conflicts and update libraries needed
This allows flame to boot TWRP. Still will need to work on
super partition for vendor and system access.

The plan will be to cherry-pick any updates to android-9.0
through gerrit.twrp.me to this branch as a WIP.
2020-03-23 11:18:29 -04:00
bigbiff
26d5d5f0b9 Merge tag 'android-10.0.0_r25' into aosp10-4
Android 10.0.0 release 25
2020-03-23 09:56:16 -04:00
Adrian Salido
cc7b7eb737 minui: add ARGB_8888 format
Minui currently really only supports composing in 2 different formats
(see gr_color()) with ALPHA always as MSB. However, some devices
interpret PixelFormat as either Big Endian (i.e. ARGB has alpha at MSB)
or Little Endian (i.e. BGRA has alpha at MSB).

This change attempts to give multiple options to specify the same format
depending on device interpretation, while keeping just 2 different
composition formats supported by minui.
* ARGB + BGRA: Pixels have (A)lpha at MSB and (B)lue at LSB
* RGBX + ABGR: Pixels have (A)lpha at MSB and (R)ed at LSB

With this in mind, limiting the use of png_set_bgr() to happen only for
(ARGB/BGRA) combination while leaving (RGBX/ABGR) unchanged.

Bug: 143480444
Test: Boot device with TARGET_RECOVERY_PIXEL_FORMAT := <<all>>
Change-Id: Ia0f94ccbc564b8def7c9416483712ff1abbbf49a
2019-12-13 10:53:33 -08:00
Tao Bao
92bdb5a389 minui: Move GRSurface into a class.
This CL adds GRSurface::Create() and dtor for managing the allocated
memory in GRSurface class. It also adds GRSurface::data() that hides the
underlying implementation, with both of const and non-const overloads.
This allows `const GRSurface&` to be more useful - previously it only
ensured a const member variable of `data`, instead of a read-only buffer
it points to.

It also marks the parameters in gr_texticon() and gr_blit() as const, as
they're incoming source that shouldn't be altered. It corrects the type
of gr_draw, which is the sink to be painted on (an earlier attempt was
made in [1], but didn't get the full picture correctly).

[1] https://android-review.googlesource.com/c/platform/bootable/recovery/+/704757/

Test: mmma -j bootable/recovery
Test: recovery_unit_test on marlin
Test: Run graphics test on marlin (fbdev).
Test: Run graphics test on blueline (drm).
Change-Id: I7904df084cd6c08fa04a9da97d01b4b1a6e3a20c
2018-10-22 18:18:02 -07:00
Tao Bao
050feb0153 minui: Track the name change to minui related properties.
These properties need to be exposed to both of charger and recovery.
This CL tracks the name change.

Bug: 113567255
Test: Build along with other CLs in the topic (for Makefile and
      sepolicy changes). Boot into charger mode.
Test: Boot into recovery. Run graphics test.
Change-Id: I4d90778c1767c9bd7e00830a34ee2d4875ce0b83
2018-09-05 21:47:19 -07:00
Ethan Yonker
58f2132bc3 Merge AOSP android-9.0.0_r3
Fix conflicts and make it build in 5.1, 6.0, 7.1, 8.1, and 9.0

Change-Id: Ida0a64c29ff27d339b7f42a18d820930964ac6e4
2018-08-24 11:17:39 -05:00
Tao Bao
ed876a7175 minui: Use runtime properties instead of build time vars.
This CL removes the use of the following build time macros, and uses the
runtime property values instead.
- TARGET_RECOVERY_PIXEL_FORMAT
- TARGET_RECOVERY_OVERSCAN_PERCENT
- TARGET_RECOVERY_DEFAULT_ROTATION

Bug: 110380063
Test: Set up taimen with `TARGET_RECOVERY_DEFAULT_ROTATION := ROTATION_LEFT`.
      Build and check recovery UI.
Test: Set up taimen with `TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888`.
      Build and check recovery UI.
Change-Id: I4439556a03fde4805a18011ef72eff1373f31d47
2018-08-01 15:36:41 -07:00
Tao Bao
44478dfb7d minui: Clean up the use of rotation.
This CL uses scoped enum for GRRotation. It also refactors the previous
comparisions to improve readability -- it was hard to tell the meaning
of `if (rotation % 2)` unless by checking the exact values.

It also temporarily adds STRINGFY to expand the macro of
DEFAULT_ROTATION. This will be removed once minui is changed from
reading build time vars to runtime properties.

Test: Build and boot into recovery image on marlin.
Test: Set `TARGET_RECOVERY_DEFAULT_ROTATION := ROTATION_LEFT` and check
      the display under recovery with `Run graphics test`.
Change-Id: Ieb08b1cd13c284f8dcf906cb2a1430c6bae2835b
2018-08-01 12:30:27 -07:00
Tao Bao
9f4263346b minui: Add constness to GRSurface* in gr_get_{width,height}.
Also free gr_font in gr_exit(), as it's owned by minui.

Test: mmma -j bootable/recovery system/core/healthd
Test: recovery_unit_test on marlin
Test: Boot into recovery. Run graphics test.
Change-Id: I00457bb97ed3dc95ef5aad493827fb5a62a258dc
2018-06-13 13:24:58 -07:00
Tianjie Xu
ccf00a2007 minui: Handle the failures from the drm backend in gr_init
In a charger mode manual test, we encounter failures from the
MinuiBackendDrm when calling DrmEnableCrtc and Flip. To make the minui
more robust, we should fall back to another backend if drm's SetCrtc
fails. And check the value of gr_draw before dereferencing.

Bug: 80249440
Test: boot to recovery
Change-Id: Ibd1ca1fb1115fe1132684586c54eccd8fb4c3ad9
2018-06-05 17:10:23 -07:00
Tianjie Xu
842f2a3dca Let gr_init proceed even if we failed to load a font file
Some users of minui don't need to draw texts; and we should let them
still be able to use the library without providing a font file. Also add
check for null pointers in gr_measure() and gr_font_size().

Bug: 80535212
Test: boot into recovery without a font file, and the buttons still work
Change-Id: I848e4410f2ce09ea0ab433573e6827b7e9b2c575
2018-05-31 21:42:58 -07:00
Tianjie Xu
55a2c4eaae Remove the obsolete mkfont.c and font_10x18.h
The font_10x18.h is used as a fall back for fonts if the
$(recovery_font) under bootable/recovery/fonts failed to reload. This
font looks very small on the screen and we haven't used it in a while.
Plus, fonts in header doesn't have many benefits if we support only
ascii characters. So we decide to remove this header along with the mkfont.c
that generates the header.

For reference, here's the steps to use mkfont:
1. Generate a picture of fonts with apps on host
2. Open the pic with GIMP
3. Export the pic as '.c' file, and rename it into '.h' file
4. Compile the generated '.h' file with mkfont.c

Bug: 76420958
Test: build and check the recovery menu on angler
Change-Id: I6c108aa43a07bf4994115ef764275bd84df725e1
2018-03-30 06:42:35 +00:00
Andreas Schneider
58d68e5a0a minui: Only include graphics_adf.h if we do not build with MSM_BSP
Change-Id: Id32a394d23ea5df986615855119912f765ebee99
2017-11-29 18:02:58 +01:00
Luke Song
846012fc44 graphics: add rotation logic
Bug: 65556996
Bug: 63541890
Test: Tried 4 rotations, viewed logs and graphics test
Change-Id: I2a6c18c28df03f0461663f63bf16db32c45211ec
2017-09-28 14:11:35 -07:00
Ethan Yonker
8373cfe28c Update to AOSP 8.0 base
Change-Id: I29fe722b4eb9718765327902779046840a01433e
2017-09-08 07:14:59 -05:00
Ethan Yonker
39662b2914 Fix minui issues for some build trees
In trees where TWRP is the primary recovery, minui.h was not setting rules
properly for healthd because healthd uses clang. Must use
CLANG_TARGET_GLOBAL_CFLAGS to set global flags.

Change-Id: I4cd9c88f8fcaec345fe012d09abcb9f24be06ef4
2017-06-06 11:32:50 -05:00
Ethan Yonker
84d61ce31c Update TWRP to AOSP 7.1.2
Change-Id: I19c1546efb4182aac62c690e3cc05b04e3a9a32e
2017-05-10 16:11:35 -05:00
Tao Bao
16b509535b Merge "minui: Move graphics_{adf,drm,fbdev} into classes." am: 0d14cc279c am: 6585a3c368 am: b8997adc20
am: 1cb8964aac

Change-Id: I8b1fb8ba115f7313f7382b7669e35184eaea3a79
2017-02-13 18:42:16 +00:00
Tao Bao
557fa1f45e minui: Move graphics_{adf,drm,fbdev} into classes.
This CL defines minui_backend as an interface, and expresses the three
backends (adf, drm and fbdev) as subclasses to the interface.

Test: 'Run graphics test' on N9, Pixel C and N5X.
Change-Id: I0e23951c7b2e2ff918957a8d9fc8b0085b6e5952
2017-02-10 17:05:15 -08:00
Tao Bao
89c56ce014 Merge "minui: Minor clean up to graphics.cpp." am: b04bc0540d am: ec8d74580d am: 7d8e13a535
am: cdd7b47545

Change-Id: Ib8e921d63f067bdf3547419e072cdb1a7ad9f0fc
2017-02-03 21:04:16 +00:00
Tao Bao
e8020f4fa3 minui: Minor clean up to graphics.cpp.
Remove unneeded header includes.

Remove the dead code in gr_test() (already commented out). Similar tests
have been covered by the "Run graphics test" from recovery menu.

Test: mmma -j32 bootable/recovery
Change-Id: If977c1b780602f5c5054469a3dae4fd85f34ab1a
2017-02-03 09:33:36 -08:00
Ethan Yonker
b386f71078 ifdef overlay graphics
Change-Id: If3173ddbfaccb95cc48636240ee3a918dac1e23f
2017-01-21 08:23:09 -06:00
Tao Bao
274e065782 Merge "minui: Export minui/minui.h." am: 13d15af08f am: ad20b76397 am: 54890af615
am: 397c6c5382

Change-Id: Ib72aea7ad125286d1d347ff3b25fb5f90c408bd3
2017-01-17 19:27:31 +00:00
Tao Bao
0ecbd76b22 minui: Export minui/minui.h.
For libminui static and shared libraries.

Test: build
Change-Id: Ib30dc5e2ef4a3c8b3ca3a0cec68cb65e229a0c16
2017-01-16 21:28:18 -08:00
Rahul Chaudhry
eca28fb8c0 Merge "Remove unnecessary uses of reinterpret_cast." am: c470dc8681 am: 849a911dee am: 6a6e54da04
am: 8ef4c38abe

Change-Id: I795ab2874d6fc8c6087c89df72e7a2341e97e387
2016-11-16 21:59:56 +00:00
Rahul Chaudhry
1cf93f5f74 Remove unnecessary uses of reinterpret_cast.
Discovered while looking at compiler warnings (b/26936282).

Test: WITH_TIDY=1 WITH_STATIC_ANALYZER=1 mma
Change-Id: I66f8f6026ed732a504504ade93ff196dc8b727ca
2016-11-15 23:25:57 -08:00
Rahul Chaudhry
b29f23f7e7 Use static_cast to cast pointers returned by malloc/calloc/realloc/mmap.
static_cast is preferable to reinterpret_cast when casting from void*
pointers returned by malloc/calloc/realloc/mmap calls.

Discovered while looking at compiler warnings (b/26936282).

Test: WITH_TIDY=1 WITH_STATIC_ANALYZER=1 mma
Change-Id: Iaffd537784aa857108f6981fdfd82d0496eb5592
Merged-In: I151642d5a60c94f312d0611576ad0143c249ba3d
2016-11-15 23:24:54 -08:00
Damien Bargiacchi
97eda9db70 Have gr_init_font alloc memory for the font
Change-Id: I8ccf369d52011bc5d07d8e041fe558ce734a78fc
(cherry picked from commit d00f5eb63a)
2016-11-15 16:40:32 -08:00
Damien Bargiacchi
d5d34d70a5 Support use of custom fonts in miniui
Bug: 29547343
Change-Id: I398160c85daac90ffab2fa9bb2e96795b9e9885a
(cherry picked from commit 35fff61b1c)
2016-11-15 14:24:06 -08:00
Rahul Chaudhry
4f7faac8d7 Use static_cast to cast pointers returned by malloc/calloc/realloc/mmap.
static_cast is preferable to reinterpret_cast when casting from void*
pointers returned by malloc/calloc/realloc/mmap calls.

Discovered while looking at compiler warnings (b/26936282).

Test: WITH_TIDY=1 WITH_STATIC_ANALYZER=1 mma
Change-Id: I151642d5a60c94f312d0611576ad0143c249ba3d
2016-11-08 16:34:01 -08:00
Damien Bargiacchi
d00f5eb63a Have gr_init_font alloc memory for the font
Change-Id: I8ccf369d52011bc5d07d8e041fe558ce734a78fc
2016-09-09 08:32:21 -07:00
nailyk
c45b2d59b3 minui: Fix gr_set_font() build issue on cm-13.0 tree.
- Add a fake function which fill the vendor/cm/charger/healthd_board_cm.cpp requirements.

Solve omnirom/android_bootable_recovery#84 issue.

Change-Id: Ia9bf898006da7e4f4ee6a942584fe2dd3c88f8ba
2016-08-23 22:25:31 +02:00
Damien Bargiacchi
35fff61b1c Support use of custom fonts in miniui
Bug: 29547343
Change-Id: I398160c85daac90ffab2fa9bb2e96795b9e9885a
2016-08-18 19:51:45 -07:00
maxwen
39624d4e5e minui: bring back custom font support
Change-Id: I6cb97b236ff8ada46d270e99ab37656f5f1b73f8
2015-12-01 22:20:57 +01:00
Ethan Yonker
a59da09dd8 Add qcom overlay graphics support to minui
graphics_overlay.cpp is based on a mix of AOSP code for
graphics_fbdev.cpp along with overlay graphics code from CAF that
was brought into earlier versions of TWRP and then further adapted
and improved before being brought into this patch set.

Also added a rule to build a minuitest binary for testing the
minui engine to ensure proper operation on a device.

Change-Id: I3972d3a6baa7002615319421ac07d9299c3cec69
2015-10-14 20:16:12 +02:00
Ethan Yonker
e96182e052 Add 16bpp support to minui
Change-Id: I9a9ba6ccbef999b1a4b122e45f862bd3672b5047
2015-10-13 19:33:16 -05:00
Stéphane Marchesin
1a92c4458d Add drm support to minui
Bug: 22231636

Change-Id: I103c8e906b7dd9862b7bb89d8642268e9a3006b4
Signed-off-by: Stéphane Marchesin <marcheu@chromium.org>
2015-07-01 15:27:48 -07:00
Elliott Hughes
0a5cb0c7cd Don't use typedefs that hide *s.
gr_surface was causing confusion for no good reason.

Change-Id: If7120187f9a00dd16297877fc49352185a4d4ea6
2015-04-15 10:58:56 -07:00
Elliott Hughes
8fd86d77f1 Move the menu header out of the menu.
This makes it easier for us to deal with arbitrary information at the
top, and means that headers added by specific commands don't overwrite
the default ones.

Add the fingerprint back, but broken up so it fits even on sprout's
display.

Change-Id: Id71da79ab1aa455a611d72756a3100a97ceb4c1c
2015-04-13 15:46:15 -07:00
Elliott Hughes
07cfb8fe79 Switch minui over to C++.
Change-Id: I59e08a304ae514a3fdb6fab58721f11670bc1b01
2015-04-10 13:42:55 -07:00