Disable alpha blending for fully opaque rectangles

* This makes the rendering several times faster, because the giant
  rectangle used as background no longer uses expensive blending
  calculations, and there are also many other big rectangles which
  don't need it (fileselector, ...).

* Results on hammerhead:
  - WITHOUT the patch - scrolling in fileselector on install page:

      I:render 67 ms, flip 6 ms, total 73 ms
      I:render 82 ms, flip 6 ms, total 88 ms
      I:render 81 ms, flip 6 ms, total 87 ms
      I:render 80 ms, flip 5 ms, total 85 ms

  - WITH the patch - scrolling in fileselector on install page:

      I:render 32 ms, flip 6 ms, total 38 ms
      I:render 16 ms, flip 6 ms, total 22 ms
      I:render 16 ms, flip 7 ms, total 23 ms
      I:render 18 ms, flip 3 ms, total 21 ms
      I:render 18 ms, flip 2 ms, total 20 ms

* On flo, the results are even more noticable - 160ms -> 40ms

Signed-off-by: Vojtech Bocek <vbocek@gmail.com>

Change-Id: I5685763ba21745d7cd93133adf5f0bcb4c9a581f
1 file changed
tree: fe3140bd69a750c731a2823dcdcb1bb0b83f416e
  1. applypatch/
  2. bmlutils/
  3. crypto/
  4. digest/
  5. dosfstools/
  6. edify/
  7. etc/
  8. exfat/
  9. fb2png/
  10. flashutils/
  11. fonts/
  12. fuse/
  13. gui/
  14. htcdumlock/
  15. injecttwrp/
  16. libblkid/
  17. libcrecovery/
  18. libmincrypt/
  19. libtar/
  20. minadbd/
  21. minelf/
  22. minui/
  23. minuitwrp/
  24. minzip/
  25. minzipold/
  26. mmcutils/
  27. mtdutils/
  28. openaes/
  29. pigz/
  30. prebuilt/
  31. res/
  32. testdata/
  33. toolbox/
  34. tools/
  35. updater/
  36. .gitignore
  37. adb_install.cpp
  38. adb_install.h
  39. Android.mk
  40. bootloader.cpp
  41. bootloader.h
  42. CleanSpec.mk
  43. common.h
  44. data.cpp
  45. data.h
  46. data.hpp
  47. default_device.cpp
  48. device.h
  49. fixPermissions.cpp
  50. fixPermissions.hpp
  51. install.cpp
  52. install.h
  53. make-overlay.py
  54. mounts.c
  55. mounts.h
  56. NOTICE
  57. openrecoveryscript.cpp
  58. openrecoveryscript.hpp
  59. partition.cpp
  60. partitionmanager.cpp
  61. partitions.hpp
  62. README.md
  63. recovery.cpp
  64. recovery_ui.h
  65. roots.cpp
  66. roots.h
  67. screen_ui.cpp
  68. screen_ui.h
  69. tarWrite.c
  70. tarWrite.h
  71. twbootloader.cpp
  72. twcommon.h
  73. twinstall.cpp
  74. twinstall.h
  75. twrp-functions.cpp
  76. twrp-functions.hpp
  77. twrp.cpp
  78. twrpDigest.cpp
  79. twrpDigest.hpp
  80. twrpDU.cpp
  81. twrpDU.hpp
  82. twrpTar.cpp
  83. twrpTar.h
  84. twrpTar.hpp
  85. ui.cpp
  86. ui.h
  87. variables.h
  88. verifier.cpp
  89. verifier.h
  90. verifier_test.cpp
  91. verifier_test.sh
README.md

Team Win Recovery Project (TWRP)

The goal of this branch is to rebase TWRP onto AOSP while maintaining as much of the original AOSP code as possible. This goal should allow us to apply updates to the AOSP code going forward with little to no extra work. With this goal in mind, we will carefully consider any changes needed to the AOSP code before allowing them. In most cases, instead of changing the AOSP code, we'll create our own functions instead. The only changes that should be made to AOSP code should be those affecting startup of the recovery and some of the make files.

If there are changes that need to be merged from AOSP, we will pull the change directly from AOSP instead of creating a new patch in order to prevent merge conflicts with AOSP.

This branch is under final testing and will be used shortly for public builds, but has not officially been released.

You can find a compiling guide here.

More information about the project.

If you have code changes to submit those should be pushed to our gerrit instance. A guide can be found here.