ff2ed70fa30f04b90dd1a2c06ec2319e157152d7 |
|
02-Sep-2013 |
Mathias Agopian <mathias@google.com> |
color blindness enhancement This is an attempt at improving the experience of users with color vision impairement. At this time this feature can only be enabled for debugging: adb shell service call SurfaceFlinger 1014 i32 PARAM with PARAM: 0 : disabled 1 : protanomaly/protanopia simulation 2 : deuteranomaly/deuteranopia simulation 3 : tritanopia/tritanomaly simulation 11, 12, 13: same as above w/ attempted correction/enhancement The enhancement algorithm tries to spread the "error" such that tones that would otherwise appear similar can be distinguished. Bug: 9465644 Change-Id: I860f7eed0cb81f54ef9cf24ad78155b6395ade48
/frameworks/native/services/surfaceflinger/Transform.cpp
|
3da1672acbe6a84f1d69f1e21096115c60826aea |
|
01-Mar-2013 |
Mathias Agopian <mathias@google.com> |
implement display projection clipping in h/w composer - cropping to the projection's "viewport" is "simply" accomplished by intersecting it with the window crop expressed in layerstack space. Bug: 7149437 Change-Id: I0e90b3f37945292314b5d78a8f134935967e8053
/frameworks/native/services/surfaceflinger/Transform.cpp
|
4c05dd175ee3bd5119eecf368742b6510a8cfa6c |
|
09-Sep-2012 |
Jeff Brown <jeffbrown@google.com> |
Ensure that viewport and frame are initialized. onInitializeDisplays() was posting a transaction with changes to the display projection. Unfortunately, it only set the display orientation field and left viewport and frame uninitialized. The uninitialized values flowed downstream and found themselves baked into a bogus DisplayDevice mGlobalTransform. That transform was then applied to some Rects which were turned into Regions that were them combined with other Regions. Under certain situations, the uninitialized data might have a largish value, resulting in the creation of Regions with components in excess of the Region max-value limit of 0x7ffffff (note that this is not INT_MAX). Later when performing a binary operation using the Region, the Spanner would loop indefinitely trying to figure out how to stuff a humongous region inside of a max-value region. Not content to try just once, the Spanner would continue trying again and again, pegging the CPU and hanging surface flinger during boot. Insanity soon followed. Bug: 7130713 Change-Id: I0016f0c9662185be833474c212a1dd408096ae23
/frameworks/native/services/surfaceflinger/Transform.cpp
|
9d4536835248525f32f1504a3d28d5bbfa0a2910 |
|
20-Dec-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
/frameworks/native/services/surfaceflinger/Transform.cpp
|
41b6aabf356d8a505da37b1d046bc9010028fe8b |
|
31-Aug-2011 |
Mathias Agopian <mathias@google.com> |
fix Surface positions are not floats Added Surface.setPosition(float, float) which allows to set a surface's position in float. Bug: 5239859 Change-Id: I903aef4ad5b5999142202fb8ea30fe216d805711
/frameworks/native/services/surfaceflinger/Transform.cpp
|
ab7c13f96a3c883fb4c93749c2e6c68155d3ad95 |
|
25-Jul-2011 |
Mathias Agopian <mathias@google.com> |
fix a typo that prevented preserveRects() to work properly this caused drawing artifacts during the screen rotation animation of SurfaceView. Change-Id: Idcc996b6ca2e346135dd2264959670c0b086d4cb
/frameworks/native/services/surfaceflinger/Transform.cpp
|
97c602c5af5f3ffd69009bf496d86347b71a2b4c |
|
20-Jul-2011 |
Mathias Agopian <mathias@google.com> |
implement: "Add an ANativeWindow API for SurfaceFlinger to suggest an optimal buffer orientation" Bug: 4487161 Change-Id: I883f34efe542c2a566d04966f873374f40c50092
/frameworks/native/services/surfaceflinger/Transform.cpp
|
29a367bb7c14c916e991a6a0028727bd06c1e16e |
|
12-Jul-2011 |
Mathias Agopian <mathias@google.com> |
take the state transform into account with h/w composer hal if the state transform didn't preserve rectangles, we would still try to use h/w composer hal using the bounds of the transformed rect, which isn't correct. now we correctly fall back to composition. Change-Id: Iff78f4339ece415d4987e95a5717b04934d370ab
/frameworks/native/services/surfaceflinger/Transform.cpp
|
883dffaa0095ac9ac2be70915f620af9f429dc4b |
|
26-Oct-2010 |
Mathias Agopian <mathias@google.com> |
really fix [3118445] Transform * Transform does not work as expected 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
/frameworks/native/services/surfaceflinger/Transform.cpp
|
0694d0f3b3d016b9eedda13c447e8e7735a4a177 |
|
24-Oct-2010 |
Mathias Agopian <mathias@google.com> |
fix [3118445] Transform * Transform does not work as expected 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
/frameworks/native/services/surfaceflinger/Transform.cpp
|
81bac09fa6b01dd1495644d9c825c3666762fced |
|
15-Jul-2010 |
Mathias Agopian <mathias@google.com> |
move native services under services/ moved surfaceflinger, audioflinger, cameraservice all native services should now reside in this location. Change-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8
/frameworks/native/services/surfaceflinger/Transform.cpp
|