For multiple reason, this effect is not maintainable and was never
used due to its abysmal performance. it'll be resurected when it can be
implemented efficiently.
Change-Id: Id4222c9b86c629275cdec18873ef07be8723b6d2
* commit '05813b0eb92cb1bc79607ee402f14ca1e4b43f6d':
[3253328, 3171580] Treat GONE and INVISIBLE views the same when calculating transparent regions
[3171580] Fix two typos related to fixed-size buffers
mFixedSize was never set, this bug was introduced during some "cleanup", in
practice this could cause some issues when a fixed-size buffer was used and
the window was resized.
Layer::drawForSreenShot() had a typo that had no effect.
mFixedSize was used to determine if filtering was needed, which was a bit too
conservative and created a dependency between filtering and "fixed size" states
which should exist.
Now we enable filtering based on the size of the buffer vs. the size of the layer.
Change-Id: I32044e91b0c944c1b137efdceb3f01dfaa78119d
some of these failures are not fatal and even expected in some cases
so they should not emit a dump in the log in those cases.
Change-Id: Idcfa252e3bfa9d74e27fe4ad8f8623aa01aa9c5e
This change removes an optimization from SurfaceFlinger that skipped
composition when it got window updates that had an empty dirty region.
This optimization caused problems because it would skip the hwcomposer
set call, which could leave the window's previous frame buffer bound to
an overlay plane. When the application subsequently dequeued and tried
to lock its next buffer (which would be the buffer currently bound to
the overlay), the lock call would block until the next hwcomposer set
call (which may never happen).
Change-Id: I563b626a1d52c1f30eb82489eae0ceb4edc79936
Bug: 3138752
Two bugs were counter acting each other.
- rotation matrices are on the left-hand side of multiplies
- the transform of the overlay is applied before that of the layer
Change-Id: Ia79bd368e9b719235c89ecf244ea263f01ce906a
Merge commit 'e1ca532d72cbfacdce794f8bb4d439e609ec9871'
* commit 'e1ca532d72cbfacdce794f8bb4d439e609ec9871':
fix [3123221] Video sticks playing back upside down following orientation switch
Merge commit 'b4645353090f1bdd5cc1d4ab98feac7ccf966368'
* commit 'b4645353090f1bdd5cc1d4ab98feac7ccf966368':
fix [3118445] Transform * Transform does not work as expected
Merge commit '457bed2bc6561dd67429dde238453fee8602fa9b' into gingerbread-plus-aosp
* commit '457bed2bc6561dd67429dde238453fee8602fa9b':
fix [3123221] Video sticks playing back upside down following orientation switch
Merge commit 'ce4d36ad729f83253d4c5ec9906148f45cc00f8e' into gingerbread-plus-aosp
* commit 'ce4d36ad729f83253d4c5ec9906148f45cc00f8e':
fix [3118445] Transform * Transform does not work as expected
the overlay wasn't reconfigured when the screen-orientation changed. It was
only done when a parameter of the surface itself changed.
Change-Id: I0ca0925bf58ded4c91ab89d12cb1fe4d1477c96c
The problem wasn't in the multiply operator, but rather in the code
that built the transform from the HAL bitmask.
We now use the multiply operator to build the Transform from the bitmask,
which guarantees, it'll always be correct.
Also added a simple test for Transform.
Change-Id: I09bf3b0e51d92f59d83ea91c4cc94fc2aa0bf227
Merge commit 'fb31036fd844444c395a2ae9c97439eec9f774e4'
* commit 'fb31036fd844444c395a2ae9c97439eec9f774e4':
Use the context_priority extension when present.
Merge commit '583fefc8dcadecc7fc933513d3569dd9c16c100c' into gingerbread-plus-aosp
* commit '583fefc8dcadecc7fc933513d3569dd9c16c100c':
Use the context_priority extension when present.
Merge commit '9f6d18cadf9ac50062063f5f5ff5de7f6895696a'
* commit '9f6d18cadf9ac50062063f5f5ff5de7f6895696a':
[3095807] screen takes a long time to turn on
Merge commit 'a8faf91fa558be1235d508e776eb24be4429585c'
* commit 'a8faf91fa558be1235d508e776eb24be4429585c':
fix [3095607] Gingerbread screen turn-on animation does not show the last frame
Merge commit '3d4a9774ced0c704da455c5bd9989127e90ba133'
* commit '3d4a9774ced0c704da455c5bd9989127e90ba133':
may fix 3097381 and 3097482. don't abort on/off if the animation fails
Merge commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f'
* commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f':
implement part of [3094280] New animation for screen on and screen off
Merge commit '043581382e43acbe29a8a62420bc765f49a9dd90' into gingerbread-plus-aosp
* commit '043581382e43acbe29a8a62420bc765f49a9dd90':
[3095807] screen takes a long time to turn on
Merge commit 'd4e03f37423bee383d17f7292753a5f67e497a28' into gingerbread-plus-aosp
* commit 'd4e03f37423bee383d17f7292753a5f67e497a28':
addresses parts of 3096779 and 3097475
Merge commit '6d71f6a0ae9fd81ce25562aee67f841b5d8394cf' into gingerbread-plus-aosp
* commit '6d71f6a0ae9fd81ce25562aee67f841b5d8394cf':
fix [3095607] Gingerbread screen turn-on animation does not show the last frame
3097475: Animation setting should control the screen on animation
3096779: CRT power-on animation can briefly show the top app instead of lockscreen
There is now a parameter that controls wether the ON and/or OFF animation are
performed. we also always clear the screen to black on power off, to make
sure it won't briefly appear on power on.
HOWEVER, 3096779 is not 100% fixed in the case where we're doing the animation
because there is a race, where SF doesn't wait (b/c it doesn't know) for the
framework to have redrawn the lockscreen.
Change-Id: Ie0f02c9225fcdf24b1e8907e268eb7da2c5b0a03
Merge commit 'b0e020ab409b725a556f2c5043b08c9bac2c29bf' into gingerbread-plus-aosp
* commit 'b0e020ab409b725a556f2c5043b08c9bac2c29bf':
may fix 3097381 and 3097482. don't abort on/off if the animation fails
always redraw the screen entirely after the power-on animation, because:
- the animation may not run (ie: on the emu)
- the animation may not contain the video planes
- the interpolation may not be perfect and not land exactly on the last frame
Change-Id: I9ba40f537b1e94464f8a3ed6f81e7c2f552df51d
now that sf handles more of the screen on/off state, we don't want to abort
because/if the animation fails for some reason (which will be the case on the
emulator).
Change-Id: I239e0a39cf8aff3074647e82db92de4a0bf0e494
Merge commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96'
* commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96':
Remove dead code, and make the animation a setting.
turn off the electron beam
Merge commit '011b5bcc0355338b7ff906656282a54ffaa04b5a' into gingerbread-plus-aosp
* commit '011b5bcc0355338b7ff906656282a54ffaa04b5a':
implement part of [3094280] New animation for screen on and screen off
Merge commit 'ba799098608c7be8ff1e18adfa7dc1f452205a7e' into gingerbread-plus-aosp
* commit 'ba799098608c7be8ff1e18adfa7dc1f452205a7e':
Remove dead code, and make the animation a setting.
turn off the electron beam
Merge commit '5d477279e6e41c9d61abe66dcded5c57a51e2c78'
* commit '5d477279e6e41c9d61abe66dcded5c57a51e2c78':
fix a bug where FLIP_H would do a 180 rotation
Bug #3081600
The OpenGL renderer in libhwui uses a single EGL context per process and
thus create it with an RGBA 8888 EGL configuration. To ensure that all
windows are compatible with this configuration, this change modifies
the window manager and SurfaceFlinger.
The window manager now checks the window's flags and if the window is
hardware accelerated, it forces the window's pixel format to be
translucent when creating the surface. The window itself is still
marked as opaque if we know that the window will be opaque on screen.
This keeps existing optimizations in place.
Similarly in SurfaceFlinger, a translucent Surface can now be created
with the Surface.OPAQUE flag, indicating SurfaceFlinger that the surface
does not require blending, despite its RGBA 8888 configuration.
Change-Id: Ic747b6b12564ba064412d842117880fcc199eb7c