minuitwrp graphics: derived commits for DRM graphics

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

minui: Cleanup GRSurfaceDrm and MinuiBackendDrm.

This CL adds a dtor to GRSurfaceDrm that handles the resource
deallocation. It also manages MinuiBackendDrm::GRSurfaceDrms with smart
pointers.

Test: Build and boot into recovery on blueline. `Run graphics test`.
Change-Id: Iff7bbdddbc0b5ab16483d00870794fca9f832bd5
3 files changed
tree: 6228ec89f22923acff786feceb7020d863e63453
  1. .github/
  2. adbbu/
  3. applypatch/
  4. attr/
  5. bmlutils/
  6. bootloader_message/
  7. crypto/
  8. dosfstools/
  9. edify/
  10. etc/
  11. exfat/
  12. fastboot/
  13. fb2png/
  14. flashutils/
  15. fonts/
  16. fuse/
  17. fuse_sideload/
  18. gpt/
  19. gui/
  20. htcdumlock/
  21. injecttwrp/
  22. install/
  23. libblkid/
  24. libcrecovery/
  25. libmincrypt/
  26. libpixelflinger/
  27. libtar/
  28. minadbd/
  29. minui/
  30. minuitwrp/
  31. minzip/
  32. mmcutils/
  33. mtdutils/
  34. mtp/
  35. openaes/
  36. orscmd/
  37. otafault/
  38. otautil/
  39. ozip_decrypt/
  40. pigz/
  41. prebuilt/
  42. recovery_ui/
  43. recovery_utils/
  44. res/
  45. res-hdpi/
  46. res-mdpi/
  47. res-xhdpi/
  48. res-xxhdpi/
  49. res-xxxhdpi/
  50. scripts/
  51. sepolicy/
  52. simg2img/
  53. soong/
  54. tests/
  55. tools/
  56. twrpDigest/
  57. twrpinstall/
  58. twrpTarMain/
  59. uncrypt/
  60. update_verifier/
  61. updater/
  62. updater_sample/
  63. .clang-format
  64. .gitignore
  65. Android.bp
  66. Android.mk
  67. BasePartition.cpp
  68. bootloader.h
  69. CleanSpec.mk
  70. data.cpp
  71. data.hpp
  72. exclude.cpp
  73. exclude.hpp
  74. find_file.cpp
  75. find_file.hpp
  76. fixContexts.cpp
  77. fixContexts.hpp
  78. fuse.h
  79. infomanager.cpp
  80. infomanager.hpp
  81. interlace-frames.py
  82. kernel_module_loader.cpp
  83. kernel_module_loader.hpp
  84. legacy_properties.h
  85. libaosprecovery_defaults.go
  86. METADATA
  87. mounts.c
  88. NOTICE
  89. openrecoveryscript.cpp
  90. openrecoveryscript.hpp
  91. OWNERS
  92. partition.cpp
  93. partitionmanager.cpp
  94. partitions.hpp
  95. PREUPLOAD.cfg
  96. progresstracking.cpp
  97. progresstracking.hpp
  98. README.md
  99. recovery-persist.cpp
  100. recovery-persist.rc
  101. recovery-refresh.cpp
  102. recovery-refresh.rc
  103. recovery.cpp
  104. recovery.h
  105. recovery_main.cpp
  106. recovery_ui.h
  107. startupArgs.cpp
  108. startupArgs.hpp
  109. tarWrite.c
  110. tarWrite.h
  111. TEST_MAPPING
  112. twcommon.h
  113. twrp-functions.cpp
  114. twrp-functions.hpp
  115. twrp.cpp
  116. twrpAdbBuFifo.cpp
  117. twrpAdbBuFifo.hpp
  118. twrpApex.cpp
  119. twrpApex.hpp
  120. twrpDigestDriver.cpp
  121. twrpDigestDriver.hpp
  122. twrpRepacker.cpp
  123. twrpRepacker.hpp
  124. twrpTar.cpp
  125. twrpTar.h
  126. twrpTar.hpp
  127. variables.h