• Home
  • History
  • Annotate
  • only in /frameworks/native/include/ui/
History log of /frameworks/native/include/ui/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
82c049843870fc72ff36f48b970dfaf413db0687 19-Apr-2017 Chris Forbes <chrisforbes@google.com> ui: Rework GraphicBuffer + Allocator for 64bit usage

Removes gralloc1-style flags, and replaces with HIDL-style single 64bit
usage. Internal storage of the usage is still 32bit; to be addressed
with a future change.

Change-Id: I60062208cbb06bc8cf6c293e7c7e1530c1147912
Bug: b/33350696
Test: Bullhead: booted to launcher, take photo, watch youtube
raphicBuffer.h
raphicBufferAllocator.h
cb8405e7e74398aeafc9ef6ddb59af2d7cc6d2a6 18-Apr-2017 Chia-I Wu <olv@google.com> libui: remove gralloc0/gralloc1 support

We now talk to HIDL gralloc exclusively.

Bug: 37433368
Test: boots
Change-Id: Iecd2f9a02c7066b2f33f24c1de57e9c4af8e28f5
ralloc1.h
ralloc1On0Adapter.h
ralloc2.h
raphicBufferAllocator.h
raphicBufferMapper.h
5bac7f36ee9d5ed0c2e8a0141909ca94351965a8 06-Apr-2017 Chia-I Wu <olv@google.com> libui: update for revised HIDL gralloc

The revised HIDL gralloc is implementable on top of gralloc0 and
gralloc1, which enables us to remove all legacy code.

However, it lacks the ability to query buffer properties from a
buffer handle. GetBufferFromHandle in VR always fails.

Bug: 36481301
Test: builds and boots on Pixel
Change-Id: Id7cfa2d2172dfc008803860f24fcf4f03ba05f11
ralloc2.h
rallocAllocator.h
rallocMapper.h
raphicBufferAllocator.h
raphicBufferMapper.h
e06ad18acd9c679816bdfa79eef206f77998cce4 22-Mar-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Add debug string functions for graphics.h enums

Test: see dataspace and colormode details when running with debug
Bug: 29940137

Change-Id: I9d3c60b1f9c71c44aba475450c7f867dcd68627e
ebugUtils.h
f543e5a7110868647e6dc16788b72ad7de80fa38 04-Apr-2017 Mathias Agopian <mathias@google.com> Remove useless GraphicBuffer() constructor

Test: compiled & run
Bug: 36869708


Change-Id: I83d80a1cde28671135b7716a434c503aeefcec46
raphicBuffer.h
b42f171a5a76985fde2689d90fd6d2d7e4920564 21-Mar-2017 Chia-I Wu <olv@google.com> libui: clean up GraphicBuffer interface

Other than transferring the ownership, some callers want to control
whether to register or to clone the handle when creating a
GraphicBuffer from a handle. Add a new constructor with
HandleWrapMethod for finer controls, to replace the one that has
only a boolean, keepOwnership.

The motivation is to enable users to construct GraphicBuffer without
fighting with GraphicBufferMapper::registerBuffer first. More
generally, GraphicBufferMapper::{registerBuffer,unregisterBuffer} is
tricky to use correctly. They should really be considered private
by most.

While at it, deprecate constructors that do not distinguish
producer/consumer usage. It turns out GraphicBuffer is used by some
proprietary libraries. I have to maintain the ABI and cannot remove
the deprecated constructors.

Bug: 36355756
Test: boots
Change-Id: Ieea618d8495f06a6233299d076fb821127cd6bf8
raphicBuffer.h
982cf471dcdcda1f29ad0928864d18f8e5243446 27-Mar-2017 Romain Guy <romainguy@google.com> Update native ColorSpace API for libhwui

Test: colorspace_test
Bug: 32984164
Change-Id: Id0728bfa90192173eb45c2d26a8b81ce970398d7
olorSpace.h
6e1193af40c870c50013affec37c8429986b3c7b 07-Mar-2017 Pawin Vongmasa <pawin@google.com> Make IGraphicBufferProducer a hybrid interface.

android::IGraphicBufferProducer will now become a hybrid
interface on
top of the HIDL interface
android::hardware::graphics::bufferqueue::V1_0::IGraphicBufferProducer.

This CL also removes the hybrid interface mechanism from libbinder and
splits BufferQueueDefs into two parts, ui and gui.

Test: Camera, Photos, YouTube and Play Movies apps.
Bug: 35442034
Bug: 33854657
Change-Id: Idbbfdc8d9be375281b533050cea03c56fded9075
ufferQueueDefs.h
fe2f54fc8a9810708fe05d719721af19aea10a4a 16-Feb-2017 Mathias Agopian <mathias@google.com> cleanup libui’s includes

- remove unneeded includes
- include a cpp’s header first in all cpps


Test: compiled & booted
Bug: 35164655
Change-Id: I0890913fcc6614cce156aff19fccdef183145beb
NativeObjectBase.h
isplayInfo.h
ralloc1.h
ralloc1On0Adapter.h
rallocMapper.h
raphicBuffer.h
raphicBufferAllocator.h
raphicBufferMapper.h
1d77b719d51a01cbd6954a048fb64e79d50a950e 18-Feb-2017 Mathias Agopian <mathias@google.com> move vector math out of libui

created a new header-only static libmath lib

Test: built & ran
Bug: n/a
Change-Id: Ic63ef5f54d9a0de07a9ab9e4d67be01ab6169fc0
olorSpace.h
MatHelpers.h
QuatHelpers.h
VecHelpers.h
alf.h
at2.h
at3.h
at4.h
uat.h
calar.h
ec2.h
ec3.h
ec4.h
bf3729bf6cfae80d88a0e90eb2e5fc784f02b769 18-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add tool to generate color space conversion 3D LUTs"
fb94f1db72bd769d4a63e2baf0b5a4ca5da7a86f 17-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Break a dependency of libui on libandroid"
25bbdcfb69d0b8fc8957b1630981632d6c9ff85d 17-Feb-2017 Romain Guy <romainguy@google.com> Add tool to generate color space conversion 3D LUTs

The tool needs to be run on an Android device and must be compiled
manually (i.e. it's not compiled as part of a regular Android build).

The tool outputs 3D LUTs in a format that can be included directly
in a C/C++ file/header.

Bug: 32984164
Test: ran lutgen and checked output
Change-Id: I96f7d0d088965c3b63c0fb4079ddeaeee7246418
olorSpace.h
873e2eee781f323a8aa0283cab5924fa4cd7ecfe 17-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Move FloatRect from libgfx to libui"
a9347647eca3101c014be902b713772de3977d87 14-Feb-2017 Mathias Agopian <mathias@google.com> Break a dependency of libui on libandroid

This was only a header dependency, but it still
created a circular dependency, which will cause
problems in another CL.

We fix this by creating a libarect static library
containing only that header. both libui and
libandroid now depend on it and reexport the
header.

We also make sure rect.h ends-up in the right
place.

Test: built and booted device
Bug: 35164655

Change-Id: Iba25b8b801b26b26ec1401c00caf367a06f197ca
ralloc1On0Adapter.h
ect.h
0ed70ddebe2a392c32b010e00229b9f0e2fd2e09 17-Feb-2017 Romain Guy <romainguy@google.com> Merge "Add RGBA 10:10:10:2 format for surfaces"
5a423eaa86f4c990afcef8c55e3949d0872068b4 16-Feb-2017 Dan Stoza <stoza@google.com> Move FloatRect from libgfx to libui

Moves FloatRect from libgfx (which is being disintegrated) to libui

Test: Builds and sailfish boots
Change-Id: I68c1b7d86a363066fe4d6f0c038ca9d92d7ab9c7
loatRect.h
ect.h
a34320a81c9787958f1b02e93e828472e54864b5 16-Feb-2017 Dan Stoza <stoza@google.com> libui: Remove STL from Fence

Renames Fence::hasSignaled to Fence::getStatus, and changes its return
type from std::experimental::optional (STL is no longer permitted in
libui) to an enum class. Also updates its one caller.

Test: Builds and sailfish boots
Change-Id: I682039b9fd88bf79f1e2a955944c4a564ed6f60b
ence.h
541f22658ab1617c9d12c98684ab40248df8749b 11-Feb-2017 Romain Guy <romainguy@google.com> Add RGBA 10:10:10:2 format for surfaces

Bug: 2984164
Test: CtsHardwareTestCases
Change-Id: Ifc90e413f414a19ac09e923e48ec7ff45d3e930b
ixelFormat.h
7bd8adbb2dd02cf07626d27fcd32ae305a35e3ee 10-Feb-2017 Chia-I Wu <olv@google.com> libui: add notes to registerBuffer(buffer_handle_t)

The method is semi-broken on gralloc0 devices. It calls down to
Gralloc1On0Adapter::managementHook, which will return
GRALLOC1_ERROR_BAD_HANDLE when the handle is received from a remote
process.

Test: make
Change-Id: Ia0ca2b51e38e8afe66a917ca7fe2282db3968f53
raphicBufferMapper.h
841abed655e96e51506ae6a78e6b4dab6740bfd7 11-Feb-2017 Mathias Agopian <mathias@google.com> clean-ups, remove warnings, fix includes.

Test: built and run
Bug: none

Change-Id: I505df89e2263952d90fae432c5eaa7d00056c6f0
raphicBuffer.h
5c0a87e5a2cba5c1b199e77f3a42e931e706569b 10-Feb-2017 Mathias Agopian <mathias@google.com> Merge "Break dependency of libui on libbinder"
21f9b57df9ca0017639e8a2cdd0bb9cfd5c7bda9 09-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "VR: Update VR HWC and VR WM to use GrallocMapper"
1c457103ccd9a520b723c1a90189d4e88a0bdd63 07-Feb-2017 Daniel Nicoara <dnicoara@google.com> VR: Update VR HWC and VR WM to use GrallocMapper

Removes the gralloc hacks to access buffer internals and re-enables
building of VR Window Manager.

Bug: b/34878847
Test: Compiled
Change-Id: I06aa5ec0428b2f282a36ee89dbc4da9838c25782
raphicBuffer.h
e1f5e6fd7ad07778fa4381059852a94567d77dfc 07-Feb-2017 Mathias Agopian <mathias@google.com> Break dependency of libui on libbinder

the dependency existed only because of
HdrCapabilities, which inherited from
Parcelable, instead of LightFlatenable<>.

An added benefit is that HdrCapabilities isn’t
virtual anymore.

Also, since the dtor is not trivial, move it to
the cpp, to avoid inlining.

Fix-up includes.

Test: built and booted device

Change-Id: Iaf9c4ef9dcc5cb28b29f79d9f7d8f21800223eb8
drCapabilities.h
2a902d763f7a04777f8432bc98917d5772070686 08-Feb-2017 Mathias Agopian <mathias@google.com> Merge "move GraphicEnv from libgui to libui"
991d2545afb325a3ebb8679519c4b0c13e29fada 06-Feb-2017 Mathias Agopian <mathias@google.com> move GraphicEnv from libgui to libui

This breaks a circular dependency between libEGL
and libgui.

Test: compiled and booted a device
Change-Id: I78932bba07fb9ef310d8e1622bd3a47f57e89c45
raphicsEnv.h
58a1ef23ca0f82cb9b8278f74e8b337947a97b93 02-Feb-2017 Craig Donner <cdonner@google.com> Adds support for more gralloc1 functions to GrallocMapper.

Bug: 34939453
Test: added native CTS tests checked with
cts-tradefed run cts-dev -m CtsNativeHardwareTestCases
Change-Id: I2393f6ec6c7eff5d229a5aa61ff2a52a9366fd1e
ralloc1.h
ralloc1On0Adapter.h
rallocMapper.h
raphicBufferMapper.h
e96a325aff9da4e02abeb7b9178592583cf3b78c 02-Feb-2017 Craig Donner <cdonner@google.com> Add methods for allocating and locking GraphicBuffers via gralloc1 flags

Bug: 34050596
Test: manual
Change-Id: I9515e60fe6b67d2c6f02b1bb78651669430f12ef
raphicBuffer.h
raphicBufferAllocator.h
raphicBufferMapper.h
eedb69abbde29ad3dd624f1f9dfc72e4f35d5234 31-Jan-2017 Romain Guy <romainguy@google.com> Add ColorSpace::createLUT

Generates a 3D LUT of a specified size. The generated LUT is meant to
be used as a 3D OpenGL texture for fast color space conversions in
shaders. This will be used to convert from P3 bitmaps to scRGB.

Bug: 32984164
Test: colorspace_test
Change-Id: I01f7276f885c71bde480e79260013d62786b377c
olorSpace.h
VecHelpers.h
545347429606f5ef7facbb1639b42e5c9b44b6ec 28-Jan-2017 Romain Guy <romainguy@google.com> Add color space connection

This will be used to generate a 3D LUT to convert wide gamut bitmaps
to the render target's color space at draw time.

Bug: 32984164
Test: colorspace_test
Change-Id: I1ea8d2b3129dfc8b994c8abc926b24e7e097558c
olorSpace.h
11ecb63414d2fea2f4217db8bb06a998bcf8b425 28-Jan-2017 Romain Guy <romainguy@google.com> Add various vector functions

- map()
- Bool vectors
- any(), all(), comparison functions

Example:

all(lessThan(abs(v1 - v0), epsilon))

Bug: 32984164
Test: vec_test
Change-Id: I7d030387f5a280a499ea480015b69138cef38459
VecHelpers.h
ec2.h
ec3.h
ec4.h
b621c5f0672244c6f67ef8a24a40ee7a53b89a57 16-Jan-2017 Brian C. Anderson <brianderson@google.com> Merge "Clean up Fence a little."
911907815e02f8ddc8bbc852326d65bac9824084 14-Jan-2017 Brian C. Anderson <brianderson@google.com> Merge changes I6f728af0,I580409f0

* changes:
Surface unit tests for getFrameTimestamps.
Avoid sync calls for unsupported/non-existant times
175a7206c5aea70236b916d7707ab25025eb9cd6 11-Oct-2016 Brian Anderson <brianderson@google.com> Clean up Fence a little.

Test: Cleanup patch only. Fences still work.

Change-Id: I65e5cdf5e3c067bc475c085ab6d3577d9753231c
ence.h
3da8d2748580b2575e368e203ce2c7f8d34dea05 29-Jul-2016 Brian Anderson <brianderson@google.com> Surface unit tests for getFrameTimestamps.

Verifies the following:

1) The timestamps and fences aren't transferred if the
feature isn't explicitly enabled.
2) Attempts to get the timestamps will fail if not enabled.
3) Timestamps are transferred if enabled.
4) The support for Present/Retire timestamps are properly
queried from the ISurfaceComposer.
5) Timestamps correspond to the correct frame.
6) The consumer doesn't send the acquire fence back to the
producer and a sync call isn't made to try and get it
from the producer.
7) A sync call isn't made when no timestamps are requested.
8) If the consumer sent the producer fences, the consumer
can get the timestamps without a sync call.
9) If there was no GL composite performed, a sync call
isn't made to get a non-existant fence/time.
10) When asking for the retire or release time of the most
recent frame, a sync call isn't made.
11) Requests for unsupported timestamps return an error and
do not result in a sync call.

Test: Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I6f728af0d4a0f431c9e47131da64584a589559e7
enceTime.h
e0ea99cc4ba89452b9b6b1baa33bddcb11f3351a 12-Jan-2017 Mark Salyzyn <salyzyn@google.com> resolve merge conflicts of a2c2d11f9 to master

Test: compile
Bug: 26552300
Bug: 31289077
Change-Id: I84d0ffa430df3beca0dcc6ed205ce220d7be1f87
fbc97581511f1fa6aba808a970afa912706fbdea 12-Jan-2017 Mark Salyzyn <salyzyn@google.com> Merge "Replace cutils/log.h and rationalize log/log.h and android/log.h" am: d655e61a22
am: 16a30c1ac8

Change-Id: I697418fbab0dbbd447d0dca2eda5b1545cc2522e
7823e124e00576e20e47ec717cbe8bc89f0f2bf2 29-Sep-2016 Mark Salyzyn <salyzyn@google.com> Replace cutils/log.h and rationalize log/log.h and android/log.h

- cutils/log.h treat as deprecated and lead by example
- android/log.h to be used instead of log/log.h if possible
- add system includes that are assumed as side effects
- define LOG_TAG first

Test: compile
Bug: 31289077
Bug: 30465923
Change-Id: I8d99b24c333578c9b5aa9f2a01324bd0bba268dd
ect.h
ace30d2b6e1773a381e321d1c0e895c4d40646d4 06-Jan-2017 Steve Paik <spaik@google.com> Merge "Add android/log.h to Rect.h" am: a422103c90 am: 20b8c55a5e am: a58d700c85
am: b6e4061cde

Change-Id: I50160499ab02584343f903372de922abd8793218
a58d700c852ff981442c2270612ca16f17ca5550 06-Jan-2017 Steve Paik <spaik@google.com> Merge "Add android/log.h to Rect.h" am: a422103c90
am: 20b8c55a5e

Change-Id: I48190e464c2667edaf8cf71a27581c8bd929c1be
003b412e3378bbd453cae8e5c499294b0d3a4a67 05-Jan-2017 Steve Paik <spaik@google.com> Add android/log.h to Rect.h

Rect.h uses definitions from log.h.

Test: Build succeeds when C file doesn't include log.h.
Change-Id: Ia85372ca61edafadea92165121dc6fbd1546674b
ect.h
71bded513d37a6c1260b4a62c69ecc0d24be95f7 19-Oct-2016 Dan Stoza <stoza@google.com> Create libgfx, starting with FloatRect

Creates libgfx, the future home of everything currently in libui and
libgui, which will be rigorously checked with -Weverything (with a few
common-sense exceptions) and clang-tidy and formatted using the included
.clang-format file.

Starts by moving FloatRect out of services/surfaceflinger since it will
be used by other libgfx primitives later.

Test: m
Change-Id: I5045ac089020e6ee380e81e8735117c500264b37
ect.h
316694751e5f20e24ad2eb3cb36d99f5498d373d 07-Dec-2016 Chia-I Wu <olv@google.com> libui: use HIDLized gralloc-mapper

Test: builds and boots
Change-Id: If42bea782e6dda5cab31c270085d934879fcdb54
rallocMapper.h
67e376d6564f8b9f996a347c9402bdc9da789321 19-Dec-2016 Chia-I Wu <olv@google.com> Replace non-const references by pointers

Use pointers for outputs to be consistent with the rest of
libui/libsurfaceflinger.

Remove assignFromHidlVec now that hidl_vec can be casted to std::vector.

Test: builds and boots
Change-Id: I656367028302e7b877a766eaf6aa2431fe07643b
rallocAllocator.h
rallocMapper.h
d3e08d4811e13aefd656e3376e7d56e2d37bb388 16-Dec-2016 Romain Guy <romainguy@google.com> Remove RGBX_FP16 format

Bug: 32984164
Test: compile
Change-Id: I4e0eadc3066717d4644d71cf2684a617bae34a1f
ixelFormat.h
e2caadca83c8842bbfe74e21f11b9e2b5aeb4e13 15-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add fp16 pixel and window formats"
ff415149dc5a83a4eb5960daf2cb2c310ef89847 14-Dec-2016 Romain Guy <romainguy@google.com> Add fp16 pixel and window formats

Bug: 32984164
Test: compile
Change-Id: I8303afbf857796295a280c0d9438a3c403a11437
ixelFormat.h
d46a65c3c37e2c8ff80d5d74145f7e2345b61cd2 04-Dec-2016 Brian C. Anderson <brianderson@google.com> Merge "Add Fence helpers: Time, Timeline, Snapshot"
3691aba91aea72a5d285c12328ed19699661602f 01-Dec-2016 Courtney Goeltzenleuchter <courtneygo@google.com> Fix typo on function comment

Test: NA
Change-Id: Iad930615262b3e43f57041ba6cc3f097b4c782ee
at3.h
b018bf0e0877b19e3c7cc2697d0b7729c711eadd 22-Nov-2016 Chia-I Wu <olv@google.com> libui: update for IAllocator changes

Create an IAllocatorClient to allocate/free graphics buffers.

Test: builds and boots
Change-Id: I9978b61ee2cb6302cce34ed6d740a5616fb7e8f1
rallocAllocator.h
221de2a33d456738f7f64db0b015a960211d4834 22-Sep-2016 Brian Anderson <brianderson@google.com> Add Fence helpers: Time, Timeline, Snapshot

FenceTime will be used to:
1) Cache and share the result of a Fence's getSignalTime with
all clients that care about it, instead of requiring a
syscall for each client.
2) Allow tests to override the valid state and signalTimes of
the underlying fence by acting as a shim.

FenceTimeline will be used to efficiently get the signal
times of Fences without having query for Fences that
likely haven't signaled.

FenceTime::Snapshot is a stable copy of a FenceTime that
can be used for serialization since it doesn't change
while flattening.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I9a28df7ce797311dc4d56b1147edf590e9de1517
ence.h
enceTime.h
5901fda2c112390f0877ed1a916fe824d36b222b 17-Nov-2016 Chia-I Wu <olv@google.com> Use android.hardware.graphics.common@1.0

Some types in composer@2.1 and allocator@2.0 are now in common@1.0.

Test: builds and boots
Change-Id: Ied8e5d1b555cd6bfd2c0381cec537293900d3ffe
rallocAllocator.h
rallocMapper.h
13a20a278332f6eb734d9acc4d9a5b35be1e499f 15-Nov-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Don't clamp when converting to XYZ"
597cd600ab062758857772f266fd82cae89cc75d 15-Nov-2016 Romain Guy <romainguy@google.com> Don't clamp when converting to XYZ

Test: colorspace_test
Bug: 29940137

Change-Id: I37bf0b6a7724e2ee155ab26835847fcbfd58e0fd
olorSpace.h
6ebc46a7c01b22bc19d3c00b493f8d930b15b43a 22-Oct-2016 Craig Donner <cdonner@google.com> Add layered buffer support to libui and libgui.

Bug: 31686534
Test: manual
Change-Id: Ia40270701467f4b785660324cad883e7da08989a
ralloc1.h
ralloc1On0Adapter.h
rallocMapper.h
raphicBuffer.h
raphicBufferAllocator.h
caf2ca414f69d460c516e2370cf42bcf49178d95 10-Nov-2016 Romain Guy <romainguy@google.com> Add ColorSpace class

The ColorSpace class can be used to create an RGB color space from
either primaries/whitepoint or an RGB->XYZ matrix.

The primaries and whitepoint are in xyY space. A utility function
is provided to compute xyY coordinates from XYZ coordinats.

The class contains numerous functions to create common RGB color
spaces (sRGB, DCI-P3, etc.).

Test: colorspace_test
Bug: 29940137
Change-Id: Ifba8701377d058f5877176dabf4183e904a4cde0
olorSpace.h
MatHelpers.h
VecHelpers.h
alf.h
at2.h
at3.h
at4.h
uat.h
calar.h
ec2.h
ec3.h
ec4.h
5d4bae7f170640e0e280b3ca8a22b18e80801a8a 08-Nov-2016 Romain Guy <romainguy@google.com> Merge Filament's math library

This math library was derived from Android's and is API compatible.
It adds new useful types (quat and half) as well as many missing
functions and optimizations.

The half type (fp16) is going to be used for HDR/color management.

Test: mat_test, quat_test, half_test and vec_test

Change-Id: I4c61efb085d6aa2cf5b43cdd194719b3e855aa9b
MatHelpers.h
QuatHelpers.h
VecHelpers.h
alf.h
at2.h
at3.h
at4.h
uat.h
calar.h
ec2.h
ec3.h
ec4.h
f873bd4d31c7055695ce74f44b2c97f9df71f5a6 18-Oct-2016 Dan Stoza <stoza@google.com> libui: Change hasSignaled to return optional<bool>
am: 6db42ac36e

Change-Id: I9b845b9f8c0e752733cca4ee50b2f92573e96a28
6db42ac36e69ab203e9078e9f70c2ff762af87cd 13-Oct-2016 Dan Stoza <stoza@google.com> libui: Change hasSignaled to return optional<bool>

Since the android::Fence::wait() call can possibly return an error,
we need some way of indicating to the caller of hasSignaled that a
fence that has not yet signaled (because it is in an error state) will
never signal. To do this, we return an optional<bool>, where true and
false indicate both that the fence is valid and that it has or hasn't
signaled. If an error is returned from wait(), we return a default
optional value (that is neither true nor false).

Test: m

Change-Id: Ibce48cd2e71ddb8ccf6cabe3284afe0efca8c132
ence.h
0eeb676e662bd9747ff2fbdb854d3dc3448dfbd7 13-Oct-2016 Dan Stoza <stoza@google.com> libui: Change hasSignaled to return optional<bool>

Since the android::Fence::wait() call can possibly return an error,
we need some way of indicating to the caller of hasSignaled that a
fence that has not yet signaled (because it is in an error state) will
never signal. To do this, we return an optional<bool>, where true and
false indicate both that the fence is valid and that it has or hasn't
signaled. If an error is returned from wait(), we return a default
optional value (that is neither true nor false).

Test: m

Change-Id: Ibce48cd2e71ddb8ccf6cabe3284afe0efca8c132
ence.h
70d2598ce8ef1833496a0be67f2bb52038286666 13-Oct-2016 Dan Stoza <stoza@google.com> libui: Add hasSignaled() method to Fence am: 5736f7dc15
am: 236c475de4

Change-Id: I31c163114384d0db3fabe52cd24fddc322d300e1
236c475de47a41df4dfab4c2716818dce5c12ffa 13-Oct-2016 Dan Stoza <stoza@google.com> libui: Add hasSignaled() method to Fence
am: 5736f7dc15

Change-Id: I14519e0db9d203d88655906b84e5bac7310ca2df
9ba189dc5c03040d45dad2080a81115f48f099c3 22-Sep-2016 Chia-I Wu <olv@google.com> libui: add support for android.hardware.graphics

Add Gralloc2::Allocator and Gralloc2::Mapper as wrappers to
android.hardware.graphics.allocator@2.0 and
android.hardware.graphics.mapper@2.0 respectively. Prefer
Gralloc2::{Allocator,Mapper} in
GraphicBufferAllocator/GraphicBufferMapper.

The new path has these differences

- it does not support gralloc0
- it does not dup-and-close fence fds to and from HAL
(not sure why we did that)
- release implies native_handle_close and native_handle_delete
(same as in gralloc1?)

When all interesting targets have android.hardware.graphics
implementations, the old path will be removed. That is why the new path
is added in the least intrusive way, as in:

if (new-path-valid) {
new-path;
} else {
old-path;
}

despite the ugliness.

Test: booted to launcher, tested with YouTube and some games
Change-Id: Idabb6c62e73c96a59736b497c6d6d1366095e7e3
rallocAllocator.h
rallocMapper.h
raphicBufferAllocator.h
raphicBufferMapper.h
5736f7dc1535452799ef2ea2026b7d1465567a31 12-Oct-2016 Dan Stoza <stoza@google.com> libui: Add hasSignaled() method to Fence

Adds a hasSignaled() method to android::Fence. This will make it easier
to write client code that only cares whether a fence has signaled, and
allows such code to gain the performance benefits of wait(0) (which is
significantly faster than getSignalTime()) while still being obvious
about what it is trying to do.

Test: m

Change-Id: Ia28ce6cff3860a171254ea20a24f3f1bfbc67eb8
ence.h
6a242bac1145da44ac9b7aa3a2a7d44a4bee4eed 10-Oct-2016 Matthew Bouyack <mbouyack@google.com> Use snprintf for SurfaceFlinger fence name am: fd4c8c3805
am: c7d352eb17

Change-Id: I41e5e4313af7784cb2ddbd4f278eb4e675cb3a08
c7d352eb17bc507d9e28ec878895bd888166e514 10-Oct-2016 Matthew Bouyack <mbouyack@google.com> Use snprintf for SurfaceFlinger fence name
am: fd4c8c3805

Change-Id: I16d3eb7cde318f2078be36acea22b9bc84975b63
fd4c8c38051f9dad028e4e43e0eb39ba412b2c0a 07-Oct-2016 Matthew Bouyack <mbouyack@google.com> Use snprintf for SurfaceFlinger fence name

snprintf is significantly faster than String8::format
This change saves ~50us per frame on Android Wear

Change-Id: I6ac47c2434662ca561208daae232f02a9f136aaf
ence.h
00dfc466657b25bdc2e4e063bc41097e7a3f8fa0 29-Sep-2016 Chih-hung Hsieh <chh@google.com> Merge "Fix google-explicit-constructor warnings in gui and ui." am: 170454b0fa am: 5a283bbd40 am: e7f4cb46c4
am: d2c6b7fd1e

Change-Id: I557d2a036bb1200349157c0cf872b10dc28f0164
d2c6b7fd1e769ad14097bbfb6665dbd146437636 29-Sep-2016 Chih-hung Hsieh <chh@google.com> Merge "Fix google-explicit-constructor warnings in gui and ui." am: 170454b0fa am: 5a283bbd40
am: e7f4cb46c4

Change-Id: I46d36b040e143dd5eedae7597ec7875ab920ac7b
170454b0fac58071c42b55f9ad9fcea533fe1ecb 29-Sep-2016 Chih-hung Hsieh <chh@google.com> Merge "Fix google-explicit-constructor warnings in gui and ui."
a7715f498a757fe50cbba9f4aed4fc45fe231211 28-Sep-2016 Colin Cross <ccross@android.com> Merge "Fix order of operations warning in libui" am: 73d4186757 am: 1b080b15aa am: 544c391292
am: 1f54f9b392

Change-Id: I0e844f953819730fff3539023d5bdeea274ab4d5
793c047af86c8f49c811536368976dfc945ec51e 28-Sep-2016 Colin Cross <ccross@android.com> Merge "Fix struct vs. class mismatch in forward definitions" am: 8cdcd15c38 am: 5c9421500e am: ef2e1afdc2
am: 8bd2f6c499

Change-Id: Ifbbe4207f744ff55e990b86df0cebb10b59244e2
1f54f9b392006ac617712d2d29b790d0432e2195 28-Sep-2016 Colin Cross <ccross@android.com> Merge "Fix order of operations warning in libui" am: 73d4186757 am: 1b080b15aa
am: 544c391292

Change-Id: I8fbce66a7a5f41281fa12ce34869f2a1b5e10413
8bd2f6c499d1ced6170ca1af3b11a960815822ec 28-Sep-2016 Colin Cross <ccross@android.com> Merge "Fix struct vs. class mismatch in forward definitions" am: 8cdcd15c38 am: 5c9421500e
am: ef2e1afdc2

Change-Id: I1656836e48b6092602c0a4bf8135084fe8da7df5
27224160b09be374d9bb3ccad23a0e51da79cdf3 27-Sep-2016 Colin Cross <ccross@android.com> Fix order of operations warning in libui

The warnings were being hidden by the use of -isystem to include
frameworks/native/include.

Bug: 31752268
Test: m -j
Change-Id: I21f34567927125d3eeeecd8f00271a175f93af21
ralloc1On0Adapter.h
a2362b44b4053344bdf29481ce4d65705f9346ac 26-Sep-2016 Colin Cross <ccross@android.com> Fix struct vs. class mismatch in forward definitions

The warnings were being hidden by the use of -isystem to include
frameworks/native/include.

Bug: 31752268
Test: m -j
Change-Id: If2bae8b2fbc4238d6251cdd78bc7b5216684f99d
ralloc1On0Adapter.h
5b443e35e5b8c5010e665aa0d6475793cf1440bb 28-Sep-2016 Colin Cross <ccross@android.com> Fix constructor parameters shadowing member variables am: 382ecd3d63 am: 6c79fc7bec am: 177b452c8c
am: 3dee7b766a

Change-Id: I0e557029e344ace9c92dd998ae8482b6f7714402
e26b76214f3fe779f5093e1c543c290bf2ae2d9a 28-Sep-2016 Colin Cross <ccross@android.com> Use uint32_t consistently for region op am: 8f279960c6 am: 19bf9a2f27 am: 66b52bae7a
am: 461b4e449f

Change-Id: Idcb2301afeb7142f54e34545c70e948e3dbcb703
28f36ea725d2036c43e0fa5e3854397863cd574e 28-Sep-2016 Colin Cross <ccross@android.com> Fix trailing semicolon warnings am: 17576de056 am: 170ae8a510 am: df1b5a19fd
am: b0300ea6f1

Change-Id: Id0a494fe0f1815225e8ff9e9fdbbd7ed06fb8c58
3dee7b766a240b00069cff92e5f7a98bb8ed58aa 28-Sep-2016 Colin Cross <ccross@android.com> Fix constructor parameters shadowing member variables am: 382ecd3d63 am: 6c79fc7bec
am: 177b452c8c

Change-Id: I1798f49b90a0431c84711c531706e96783fa6802
461b4e449f433344fb6167d926893944ff3434a5 28-Sep-2016 Colin Cross <ccross@android.com> Use uint32_t consistently for region op am: 8f279960c6 am: 19bf9a2f27
am: 66b52bae7a

Change-Id: Ic88d190dd73525e901279bdf80897bd0cace004f
b0300ea6f1f37973851b87b4c0892967f11c537a 28-Sep-2016 Colin Cross <ccross@android.com> Fix trailing semicolon warnings am: 17576de056 am: 170ae8a510
am: df1b5a19fd

Change-Id: I1beb53002656be0ca988c18108d5e9a565a1f707
382ecd3d6345aeeda158a8d94cc0aee1bd3a45dc 26-Sep-2016 Colin Cross <ccross@android.com> Fix constructor parameters shadowing member variables

Using the same name for the constructor parameter and the member
variable causes a warning that was being hidden by the use of -isystem
to include frameworks/native/include. Prefix the parameter with an
underscore.

Bug: 31752268
Test: m -j
Change-Id: I7748934f1e9515176e2ae98d2c0e58d165a7a5c2
ralloc1On0Adapter.h
oint.h
8f279960c6ad8803e36503250b7ab89e34c9477b 26-Sep-2016 Colin Cross <ccross@android.com> Use uint32_t consistently for region op

An implicit conversion warning was being hidden by the use of -isystem
to include frameworks/native/include.

Bug: 31752268
Test: m -j
Change-Id: I008ef537a24311d58816fae12ef8c4aeaba07547
egion.h
17576de056a57753eb4af797545db88ef4f81ef0 26-Sep-2016 Colin Cross <ccross@android.com> Fix trailing semicolon warnings

Remove semicolons after inline function definitions. The warnings were
being hidden by the use of -isystem to include
frameworks/native/include.

Bug: 31752268
Test: m -j
Change-Id: I1027e87f459c36a575cd04b3afb645736832b07b
rameStats.h
ralloc1On0Adapter.h
f62eaf5994ac86f4d84e2d34af727617919d7bb7 02-Jun-2016 Dan Stoza <stoza@google.com> Squashed: gralloc1/binder/requestor

This is a combination of the following three commits:

libui: Convert Allocator and Mapper to gralloc1

Converts GraphicBufferAllocator and GraphicBufferMapper to speak
gralloc 1.0 (via the C++ shim and optionally the 1On0 adapter) instead
of gralloc 0.x.

-----

Create graphic buffer using binder interfaces

Using binder interfaces rather than directly allocating the buffer prevents
SELinux warnings.

-----

Add requestor name to GraphicBuffer alloc metadata

Adds a requestor name (usually the BufferQueue consumer's name) to the
metadata that GraphicBufferAllocator stores on allocation so that
`dumpsys SurfaceFlinger` can attempt to attribute buffer usage to the
correct client.

Bug: 28401203
Bug: 29402015
Bug: 30776557
raphicBuffer.h
raphicBufferAllocator.h
raphicBufferMapper.h
eb03fd3a8bb5b1217b6a0eec513666856d7c6df3 12-Jan-2016 Dan Stoza <stoza@google.com> libui: Add Gralloc1On0Adapter and C++ shim

Adds an adapter which provides the gralloc1 interface on top of a
gralloc 0.x device as well as a C++ shim which wraps a gralloc1 device
and provides a somewhat nicer interface to the rest of the system.

This has also been squashed with a later commit that added mutexes to
protect both the buffer list and the descriptor list from concurrent
access.

Bug: 28401203
Bug: 29420918
Change-Id: I0eeafc998b56e2e2fc39de6fad41e3ed2e19658a
ralloc1.h
ralloc1On0Adapter.h
65d4787875544af168de512d3172777595ab59f7 01-Sep-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings in gui and ui.

* Add explicit keyword to conversion constructors.
Bug: 28341362
Test: build with WITH_TIDY=1

Change-Id: I476ad1e9a4d47acb11bf4a87ad8baa855f441417
ence.h
024e9313ce69ced1f853d737de680ef9f50ed26d 24-Aug-2016 Dan Stoza <stoza@google.com> Add requestor name to GraphicBuffer alloc metadata

Adds a requestor name (usually the BufferQueue consumer's name) to the
metadata that GraphicBufferAllocator stores on allocation so that
`dumpsys SurfaceFlinger` can attempt to attribute buffer usage to the
correct client.

Bug: 30776557
Change-Id: I6e0f346584c871bb3b9d5481f82b697b0475a916
raphicBuffer.h
raphicBufferAllocator.h
d4079aff759713e7c7dd14cecb585a7290e80772 23-Aug-2016 Dan Stoza <stoza@google.com> Add requestor name to GraphicBuffer alloc metadata

Adds a requestor name (usually the BufferQueue consumer's name) to the
metadata that GraphicBufferAllocator stores on allocation so that
`dumpsys SurfaceFlinger` can attempt to attribute buffer usage to the
correct client.

Bug: 30776557
Change-Id: I6e0f346584c871bb3b9d5481f82b697b0475a916
raphicBuffer.h
raphicBufferAllocator.h
c4cba997508820c5ffbbcdca8d4769944a7caacf 20-Jul-2016 Michael Wright <michaelwr@google.com> Merge commit '19cd2f88b6914e2f4c43a9595532e81a697304fe' into fresh-again

Change-Id: I6032eea1ad12960fc1c88582ae295f83c84bb37e
28f24d0ab481bd9c6fd5618414fee694e837c5c6 12-Jul-2016 Michael Wright <michaelwr@google.com> Color transforms are now color modes.

Rename color transforms to color modes for all interfaces exposed to
surfaceflinger clients. Also split it out to be a separate
configuration value from display modes.

Bug: 29044347

Change-Id: I87e937f7c954a50c946e8e2c606797caa416c5d8
isplayInfo.h
bd3577ef5bae7d65e54bddc04f90b619330edb89 21-Jun-2016 Pablo Ceballos <pceballos@google.com> Make sure constructors initialize all members

- Add default constructors to Parcelables that didn't have them and
make sure all members are initialized by the constructors.
- Add missing fields to BufferItem flatten/unflatten.

Change-Id: I9aa83b326dc3aee757762e63be499dc96a74df91
isplayInfo.h
isplayStatInfo.h
923c0668eb2427bb148a56bd1ac7834cc371d5a0 22-Jun-2016 Dan Stoza <stoza@google.com> gralloc1: Add mutexes

Adds mutexes to protect both the buffer list and the descriptor list
from concurrent access

Bug: 29420918
Change-Id: I4d14353ceb167276570c56c9f92d48b28b2d4c53
ralloc1On0Adapter.h
4e36f6e29b1642ffba4d645ff543038e7a5e7544 14-Jun-2016 Dan Stoza <stoza@google.com> Merge changes from topic 'gralloc1' into nyc-mr1-dev

* changes:
libui: Convert Allocator and Mapper to gralloc1
libui: Adds C++ shim for gralloc1
libui: Add Gralloc1On0Adapter
8deb4da6e8fe4687991da32ae68fa0bca4cb8212 02-Jun-2016 Dan Stoza <stoza@google.com> libui: Convert Allocator and Mapper to gralloc1

Converts GraphicBufferAllocator and GraphicBufferMapper to speak
gralloc 1.0 (via the C++ shim and optionally the 1On0 adapter) instead
of gralloc 0.x.

Bug: 28401203
Change-Id: Ie1649f0ee72801579be2c2d3c47177b52962a825
raphicBufferAllocator.h
raphicBufferMapper.h
41b1261e233e78553ad4e3a11dda80b1c5df07c5 20-May-2016 Dan Stoza <stoza@google.com> libui: Adds C++ shim for gralloc1

Adds a C++ shim which wraps a gralloc1 device and provides a somewhat
nicer interface to the rest of the system.

Bug: 28401203
Change-Id: I934ed41999bd4b9aa04d9ad8d40e7f8fba6f30ee
ralloc1.h
1e2a2a0ee81401072d9fc0f842c7ec1a915c5a07 12-Jan-2016 Dan Stoza <stoza@google.com> libui: Add Gralloc1On0Adapter

Adds an adapter which provides the gralloc1 interface on top of a
gralloc 0.x device.

Bug: 28401203
Change-Id: I0eeafc998b56e2e2fc39de6fad41e3ed2e19658a
ralloc1On0Adapter.h
324b700b4b0669683efff3d696324dc0d4e24ec5 13-Jun-2016 Pablo Ceballos <pceballos@google.com> Add FrameStats default constructor am: 9a8c42a72b am: 8cd7d257de am: 67105cc24d am: b990d75315 am: a1952f0a6d am: 81d678cf18 am: ed968dc61c
am: d1d1d4e922

Change-Id: I581c4df5e3866e8a2326830e6b9e6ca2ffb3bf1c
81d678cf189d8b1df1022ab7dfbf94c25db05b8c 13-Jun-2016 Pablo Ceballos <pceballos@google.com> Add FrameStats default constructor am: 9a8c42a72b am: 8cd7d257de am: 67105cc24d am: b990d75315
am: a1952f0a6d

Change-Id: Icc23cc2a483b13c6ac2134008d553574fffe06f4
a1952f0a6ddab4c4e950ee9d924735ea5c96743f 13-Jun-2016 Pablo Ceballos <pceballos@google.com> Add FrameStats default constructor am: 9a8c42a72b am: 8cd7d257de am: 67105cc24d
am: b990d75315

Change-Id: Ibc0caec8dc613a6701791f1a633f3793522615af
b990d753154a1675ddcb608806a5996c762b7c2f 13-Jun-2016 Pablo Ceballos <pceballos@google.com> Add FrameStats default constructor am: 9a8c42a72b am: 8cd7d257de
am: 67105cc24d

Change-Id: Icf85c944e561763b0a9c353f84d614a992168c20
8cd7d257de075d20af7c878362b103105b62043d 13-Jun-2016 Pablo Ceballos <pceballos@google.com> Add FrameStats default constructor
am: 9a8c42a72b

Change-Id: Ib78d68c71438391711ea3b91102408d5ad0b966b
9a8c42a72b072bd03f0c830ffe1094b199146e74 27-May-2016 Pablo Ceballos <pceballos@google.com> Add FrameStats default constructor

Bug 28592402

Change-Id: I857e46c9ab3ffae0d96923d665d13a4128a6cafa
rameStats.h
7d7ae7345abfb91be55c4aed6c9be9d09a144e4c 16-Mar-2016 Dan Stoza <stoza@google.com> HWC2: Add getHdrCapabilities to C++ shim

Adds support for the getHdrCapabilities call to the HWC2 C++ shim.

Bug: 25684127
Change-Id: Ib4635ee437a06b48945e7f0328492c1e74e27aaa
drCapabilities.h
b2a54ab9590141ce16455883aa1e95f42b6e1772 11-Jan-2016 Dan Stoza <stoza@google.com> Merge "libui: Remove FramebufferNativeWindow"
4e643af56d8805b24cccb0ceb6b67a24cf437fb7 08-Jan-2016 Dan Stoza <stoza@google.com> libui: Make Rect constructor 32/64-bit friendly

Makes the width/height constructor for the Rect class more flexible
with the types of integers it will accept.

Change-Id: Id88b4e6da2f84d6826e19d1cabd93fe86ad48c8d
ect.h
9c024aa3977ba8ab3bcb72c27a11021d02e372cf 08-Jan-2016 Dan Stoza <stoza@google.com> libui: Remove FramebufferNativeWindow

We no longer support the framebuffer device, so FramebufferNativeWindow
is no longer relevant.

Change-Id: I97c427bb7c0b209bbf33e61900466bde7df43e85
ramebufferNativeWindow.h
811710d6b34c68379090a0311af1a84e2d5547b1 30-Sep-2015 Sergio Giro <sgiro@google.com> am 41659e2e: am b450d9d8: am 77f147ff: Merge "frameworks/native: remove superfluous mention of SharedBuffer in Region.h"

* commit '41659e2e6b42b7b379f4314af96045793bbd5fd0':
frameworks/native: remove superfluous mention of SharedBuffer in Region.h
41659e2e6b42b7b379f4314af96045793bbd5fd0 30-Sep-2015 Sergio Giro <sgiro@google.com> am b450d9d8: am 77f147ff: Merge "frameworks/native: remove superfluous mention of SharedBuffer in Region.h"

* commit 'b450d9d8940f7406def0b1ccd7c139bb7203115f':
frameworks/native: remove superfluous mention of SharedBuffer in Region.h
46f7593a240a58f3e41492230f54ceb813347acd 30-Sep-2015 Sergio Giro <sgiro@google.com> frameworks/native: remove superfluous mention of SharedBuffer in Region.h

Towards deprecation of SharedBuffer

Change-Id: I9c853c86fb057280013405cb8c3c725e13175ea4
egion.h
48d1d1fc902543ea16e5826a4739346714691d8c 23-Sep-2015 Sergio Giro <sgiro@google.com> am f1519eeb: am 64b83133: Merge "Remove usage of SharedBuffer"

* commit 'f1519eeb21ee03a956d973545f9f0f742727faaa':
Remove usage of SharedBuffer
f53f3c80bf2dcf6c1b70320765f9fc8019b829a2 11-Sep-2015 Pablo Ceballos <pceballos@google.com> Remove usage of SharedBuffer

- Remove getSharedBuffer() from Region
- Don't use SharedBuffer for memory management in HWCLayerVersion1,
instead keep shallow copies of the Regions.

Bug 23962051

(cherry picked from commit d814cf2a3e3a2fdb73efa80539fe8af0a93da1db)

Change-Id: I8fa17beed57936648c7b4defc9219dff1d5b337f
egion.h
d814cf2a3e3a2fdb73efa80539fe8af0a93da1db 11-Sep-2015 Pablo Ceballos <pceballos@google.com> Remove usage of SharedBuffer

- Remove getSharedBuffer() from Region
- Don't use SharedBuffer for memory management in HWCLayerVersion1,
instead keep shallow copies of the Regions.

Bug 23962051

Change-Id: I8fa17beed57936648c7b4defc9219dff1d5b337f
egion.h
71b2947cfd1be2795a2e1313f4b799c5588c3430 04-Sep-2015 Dan Stoza <stoza@google.com> am afdbddbe: am e5ce0db8: am f090d598: am 3e4c8ccc: Merge "SF: Add colorTransform to DisplayInfo" into mnc-dr-dev

* commit 'afdbddbef57b3ffafa5b6a2107f37fda06dec9d4':
SF: Add colorTransform to DisplayInfo
f2699fc3a8c12b2bf95120c068801e050168bd96 31-Aug-2015 Dan Stoza <stoza@google.com> SF: Add colorTransform to DisplayInfo

Adds the colorTransform field, which defines a vendor-specific color
transform (e.g., wide gamut, sRGB, etc.) to the DisplayInfo class, and
populates it from the HWC interface.

Bug: 20853317
Change-Id: I153edc36a361407656f3eb5082b96c2da2ecbec7
isplayInfo.h
60d6922a011fe18c111b8d30fb6ef1f655b6b15e 07-Aug-2015 Pablo Ceballos <pceballos@google.com> libsgui: Change Rect default constructor

The current Rect default constructor initializes to all zeroes. Change
it to initialize to an invalid Rect.

Modify all of the existing invocations of the default constructor to
maintain the existing behavior.

Bug 18173359

Change-Id: Ibbad076f1550a94f56d7b1cf5350071f2022e09a
ect.h
993772a60ac43e458f16b08c27e1f97dcfcfe3e1 03-Jun-2015 Dan Stoza <stoza@google.com> libgui: Add generation numbers to BufferQueue

This change allows producers to set a generation number on a
BufferQueue. This number will be embedded in any new GraphicBuffers
created in that BufferQueue, and attempts to attach buffers which have
a different generation number will fail.

It also plumbs the setGenerationNumber method through Surface, with the
additional effect that any buffers attached to the Surface after
setting a new generation number will automatically be updated with the
new number (as opposed to failing, as would happen on through IGBP).

Bug: 20923096
Change-Id: I32bf726b035f99c3e5834beaf76afb9f01adcbc2
(cherry picked from commit 812ed0644f8f8f71ca403f4e5793f0dbc1fcf9b2)
raphicBuffer.h
812ed0644f8f8f71ca403f4e5793f0dbc1fcf9b2 03-Jun-2015 Dan Stoza <stoza@google.com> libgui: Add generation numbers to BufferQueue

This change allows producers to set a generation number on a
BufferQueue. This number will be embedded in any new GraphicBuffers
created in that BufferQueue, and attempts to attach buffers which have
a different generation number will fail.

It also plumbs the setGenerationNumber method through Surface, with the
additional effect that any buffers attached to the Surface after
setting a new generation number will automatically be updated with the
new number (as opposed to failing, as would happen on through IGBP).

Bug: 20923096
Change-Id: I32bf726b035f99c3e5834beaf76afb9f01adcbc2
raphicBuffer.h
9de7293b0a1b01ebe6fb1ab4a498f144adc8029f 17-Apr-2015 Dan Stoza <stoza@google.com> libgui: Allow an IGBProducer to disable allocation

Adds a new method IGBP::allowAllocation, which controls whether
dequeueBuffer is permitted to allocate a new buffer. If allocation is
disallowed, dequeueBuffer will block or return an error as it
normally would (as controlled by *ControlledByApp).

If there are free buffers, but they are not of the correct dimensions,
format, or usage, they may be freed if a more suitable buffer is not
found first.

Bug: 19801715
Change-Id: I0d604958b78b2fd775c2547690301423f9a52165
raphicBuffer.h
5065a55291b67f584d7b0be3fa3cfc4e29a3cd1c 18-Mar-2015 Dan Stoza <stoza@google.com> libgui: Pass surface damage through BufferQueue

This change adds support for passing surface damage all of the way
down from the EGL interface through the consumer side of the
BufferQueue. Depends on system/core change
Ie645e6a52b37b5c1b3be19481e8348570d1aa62c

Bug: 11239309
Change-Id: I4457ea826e9ade4ec187f973851d855b7b93a31b
ect.h
egion.h
82c6bcc9705eabcaf5b9e45bc81867b0e2d61a02 20-Feb-2015 Eino-Ville Talvala <etalvala@google.com> DO NOT MERGE Add dataSpace to buffer queues; remove old format enums.

- Wire up new dataSpace parameter through buffer queue stack
- Update tests to include the parameter
- Switch eglApi to using dataSpace to indicate sRGB gamma/linear
difference
- Remove RAW_SENSOR in favor of RAW16
- Remove use of sRGB format enums
- Add default dataspace to buffer queue core
- Add query for default dataspace

Cherry pick of I070bd2e7c56506055c419004c29e2e3feac725df

Change-Id: I461952389c18051176c6b75e664f20ad369f5760
ixelFormat.h
fe4966d59b31ae6fd6dd4d81dd73d2f4f7be33fe 22-Dec-2014 Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> Restore Region::set(uint32_t, uint32_t)

The Region::set(uint32_t,uint32_t) ABI is used by the Nexus 10 graphics
driver blobs.
After commit dd883c0b08d2a60f89542b9b9f5fdabcb14885c7, Nexus 10 blobs
need a rebuild unless the old ABI is added back

Change-Id: I138dcc1cc281b8d3cde0021282bf874054ec4eaf
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
egion.h
dd883c0b08d2a60f89542b9b9f5fdabcb14885c7 18-Nov-2014 Dan Stoza <stoza@google.com> libgui: Enable -Weverything and -Werror

Enables -Weverything and -Werror, with just a few exceptions for
warnings we can't (or shouldn't need to) work around.

This is a squashed commit based on an initial change with a couple of
fixes to avoid breaking certain targets. The source commits are:
d723bd7669b4fc88dc282d8bf8ba5ecb2849d22f
00d504c06ea034befe143e6b8cb34d004670ed02
429ba89cd293633d2f882165066b422c96597df2

Change-Id: I034abec27bf4020d84af60d7acc1939c59986dd6
ect.h
d31824004277f554000417cea349d69f18655e95 17-Nov-2014 Dan Stoza <stoza@google.com> libui: Enable -Weverything and -Werror

Enables -Weverything and -Werror, with just a few exceptions for
warnings we can't (or shouldn't need to) work around.

Change-Id: I470a267e9b1c373f2d5c960f005c3b0e02b2db63
(cherry picked from commit 303b9a51239d36d237a7d40c67b5085cdb3c1059)
ence.h
raphicBuffer.h
raphicBufferAllocator.h
raphicBufferMapper.h
ixelFormat.h
egion.h
01049c8321aab30cd431e2febeddd79242ae5a4f 11-Nov-2014 Dan Stoza <stoza@google.com> Enable clang for libui/libgui/surfaceflinger

Enables clang and C++11 for libui/libgui/surfaceflinger, and
eliminates all compile-time warnings.

Change-Id: Ie237fdb5ae44f2bfcddaa884f9c65ec3f08ae50f
(cherry picked from commit f10c46ef855b6410b20ebd8b1351d4d78d8eca8e)
ramebufferNativeWindow.h
raphicBuffer.h
f3929d6611bb8278e561fdd4b05a21915ac9de76 30-Oct-2014 Dan Stoza <stoza@google.com> am e42cba8f: Merge "Initialize ARect fields in default ctor"

* commit 'e42cba8feb2bbfe385f162a06e41e2c2c0f40c99':
Initialize ARect fields in default ctor
bccab86174f2cce787333aebb13ac5ef9a9247cc 29-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Initialize ARect fields in default ctor

So that we can use Rect() for update and such.

Bug: 18095940
Change-Id: I03ed87121d2d279f22013b75e95dd7254551ca1f
ect.h
b2e19208ddf3274e7cc044ca1abfcd02787a7cf1 29-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Initialize ARect fields in default ctor

So that we can use Rect() for update and such.

Bug: 18095940
Change-Id: I03ed87121d2d279f22013b75e95dd7254551ca1f
ect.h
67d8bd66aaf04805cb8f2616ba964141b865e3b9 11-Sep-2014 Lajos Molnar <lajos@google.com> surfaceflinger: add getDisplayStats() method

This is used by media service to schedule video frames at the
proper time, based on precise vsync timings.

Bug: 14659809
Change-Id: I1a90603f3dc09dca9aa4f90a3aa845fab56e0a5e
isplayStatInfo.h
457296ad6c8bf3533a90780a8c28ced84a2301e7 04-Sep-2014 Stephen Hines <srhines@google.com> Fix undefined behavior (not returning a value from a function with return).

Bug: 17379740

This function was missing a return statement, even though it declares a return
type. This is undefined behavior, which clang miscompiled into just falling
through to a later function in some cases. Adding the return statement
fixes the undefined behavior (and probably fixes a bug too).

Change-Id: I05c03b6473b831769dc4fa8b5ba43fb4249f7626
at4.h
03414a1cfe6c1222fd7723949bd622f9cba145aa 01-Jul-2014 Riley Andrews <riandrews@google.com> Turn on support for async cursor update in surfaceflinger.

If available, surfaceflinger will use the hwc setCursorPositionAsync()
api to change the position of supported cursor layers outside of
the usual prepare/set loop.

Change-Id: Ib3fc5c0c390b3489ddbba202379840a1d2748917
raphicBuffer.h
91b2ca8562763c981c4ce93148db80adb51d0cb6 13-Jun-2014 Andy McFadden <fadden@android.com> Add two new display info fields

This adds SurfaceFlinger's app VSYNC offset and buffer deadline
values to DisplayInfo.

Bug 14612039

Change-Id: Ie0ab21d388fe2764f2b6f71bd1cefa33dc861a73
isplayInfo.h
f974bffb36a97d21432a504a741330c4f4245746 12-May-2014 Greg Hackmann <ghackmann@google.com> am 38c9e132: am c1ffd351: am bd20e551: Merge "Use asynchronous lock/unlock API"

* commit '38c9e1327a5b24267c3dab5293bc9d7ada6e9fc9':
Use asynchronous lock/unlock API
8f3960179c56767e5077be8337792bd4e244b7d7 01-Apr-2014 Francis Hart <fhart@nvidia.com> Use asynchronous lock/unlock API

The gralloc API now provides a way for using lock/unlock with the Android
explicit synchronisation concept. This changes updates the GraphicBuffer class
to also expose this functionality, and updates the Surface class to make use of
in line with the dequeueBuffer/queueBuffer mechanism.

This new behaviour is dependent on GRALLOC_MODULE_API_VERSION_0_3. If the local
gralloc module does not support this then the existing synchronous lock/unlock
mechanism will be used.

Change-Id: I8c3fd9592e0c5400ac9be84450f55a77cc0bbdc5
raphicBuffer.h
raphicBufferMapper.h
2f3dca149a2bcae96f18e38f7ba99a95c3e1b08c 10-May-2014 Greg Hackmann <ghackmann@google.com> am 9493d492: am 9eb142e3: am a9d49f99: Merge "Revert "Use asynchronous lock/unlock API""

* commit '9493d4924a59f14b698389386337a9c07a7ea3c4':
Revert "Use asynchronous lock/unlock API"
02528cf6aaedbbfec55be57d33389e1c57d88245 09-May-2014 Greg Hackmann <ghackmann@google.com> am 4b46776f: am 8a6cd189: am f60564a1: Merge "Use asynchronous lock/unlock API"

* commit '4b46776ff88c5a365700b88e8b2b04e1b2c77e6e':
Use asynchronous lock/unlock API
53ec72523a4083b88eaa13e2e720976523a7ebf8 09-May-2014 Greg Hackmann <ghackmann@google.com> Revert "Use asynchronous lock/unlock API"

This reverts commit 378ef07760eda717367d9429428c42d54d54d9a7.

Change-Id: I1de5ab973b5383633e75924fe90ac3ca8216c36a
raphicBuffer.h
raphicBufferMapper.h
7f7da32569f8e0b3d383a40b95f8ac1d55afd801 03-May-2014 Dan Stoza <stoza@google.com> Enable changing display configuration

This allows querying and switching display device configurations
through the ISurfaceComposer/SurfaceComposerClient interface.

Bug: 14320401
Change-Id: I8c22165698950e5da32204c1c4da92122f91a715
isplayInfo.h
378ef07760eda717367d9429428c42d54d54d9a7 01-Apr-2014 Francis Hart <fhart@nvidia.com> Use asynchronous lock/unlock API

The gralloc API now provides a way for using lock/unlock with the Android
explicit synchronisation concept. This changes updates the GraphicBuffer class
to also expose this functionality, and updates the Surface class to make use of
in line with the dequeueBuffer/queueBuffer mechanism.

This new behaviour is dependent on GRALLOC_MODULE_API_VERSION_0_3. If the local
gralloc module does not support this then the existing synchronous lock/unlock
mechanism will be used.

Change-Id: I77daa1beb197b63b1c2f281b8414ac4ae4b5b03c
raphicBuffer.h
raphicBufferMapper.h
21f18e693528bd255719801539f68e37b4a97418 11-Apr-2014 Dan Stoza <stoza@google.com> Merge "Add unique ID to GraphicBuffer"
d85084b2b65828442eafaff9b811e9b6c9ca9fad 20-Mar-2014 Svetoslav <svetoslavganov@google.com> Adding render stats APIs to UiAutomation (framework native).

bug:12927198

Change-Id: Ibb1c07f7d89e11281e5c1f27f412a29ac6f9c4ab
rameStats.h
b1363d37fc6a661508fad106eb7698c5850a6c17 28-Mar-2014 Dan Stoza <stoza@google.com> Add unique ID to GraphicBuffer

Adds a globally-unique ID (PID + sequence number) to every
GraphicBuffer, which will remain the same while crossing Binder,
even if the underlying handles change.

Change-Id: Ib11330a4c5e99621b82204e0adb31b9a88658426
raphicBuffer.h
2e336496c3b3b78910cf1c496e21dc4909ee32ad 06-Mar-2014 Andy McFadden <fadden@android.com> FramebufferNativeWindow.h is obsolete

This adds a deprecation #warning to the header.

Change-Id: Ia32f16e491cb01d435ec8846dda3d9a7d1a9cfc5
ramebufferNativeWindow.h
1c284a9431f98bbefd27a30c3368bbf7366dff3a 10-Feb-2014 Michael Wright <michaelwr@google.com> Add contains point method to Region

Change-Id: I553433ff7ac39f14ffca8278960d2abc95b4dd63
egion.h
6a5d35dd5cd8710c6c9f100076e62ffbdb0b868b 08-Jan-2014 Dan Stoza <stoza@google.com> libgui: Add a test for SRGB surfaces

Add SRGBTest.RenderToSRGBSurface, which validates that passing the
SRGB colorspace attributes to eglCreateWindowSurface actually
results in an SRGB surface by comparing the output values to those
of a standard RGB surface.

Change-Id: I3d5fef8070ed8fa2357ddd1c5fcc849ae3fbd12a
ixelFormat.h
c1c05de415854eb7a13a16b7e22a22de8515123a 18-Sep-2013 Mathias Agopian <mathias@google.com> fix camera API 2.0 orientation

we add a flag to ANativeWindow::setBufferTransform that means
"apply the inverse rotation of the display this buffer is displayed
onto to".

Bug: 10804238
Change-Id: Id2447676271950463e8dbcef1b95935c5c3f32b2
MatHelpers.h
1d4d8f94e2989b7c8667602304df9059d2701653 02-Sep-2013 Mathias Agopian <mathias@google.com> improve mat44 implementation

this will make it easier to create matrices of different sizes

Change-Id: I2c1771ba0823c42d737762e2dfc2cd47eb302767
MatHelpers.h
VecHelpers.h
at4.h
ec2.h
ec3.h
ec4.h
595ea77f6bdb5e9d0ddd3305da7a44b56f326b2c 22-Aug-2013 Mathias Agopian <mathias@google.com> vector and matrix classes for graphics use

- this implements vec2, vec3, vec4, which are float vectors
of size 2, 3 and 4 respectively.

the code allows easy instantiation of vectors of a different
type via the tvec{2|3|4}<T> template classes.

- this also implements mat4 which is a float 4x4 matrix. the
tmat44<T> template class allows easy instantiation of a
4x4 matrix of a different value_type.

The vector types have some minimal support for the
glsl style swizzled access; for instance:

vec4 u;
vec3 v = u.xyz;

only .x, .xy, .xyz and their .stpq / .rgba equivalent are
supported.

most operators are supported on both vector and matrices:
arithmetic, unary, compound assignment and comparison
(bit-wise operators NOT supported).

- operations available on vectors include:
dot, length, distance, normalize and cross

- operations available on matrices include:
transpose, inverse, trace

- and a few utilities to create matrices:
ortho, frustum, lookAt

Change-Id: I64add89ae90fa78d3f2f59985b63495575378635
MatHelpers.h
VecHelpers.h
at4.h
ec2.h
ec3.h
ec4.h
87f9b877964b7d7db9b59ba45b73b4b1a779ecf8 01-Aug-2013 Mathias Agopian <mathias@google.com> remove unused code form GraphicBuffer

Change-Id: I0dd67f1f93f654331e8f17b55730931dbc695ca7
raphicBuffer.h
e142428a9c8b9d2380032cd4d7b55ee440fe8770 30-Jul-2013 Mathias Agopian <mathias@google.com> Make Flattenable not virtual

Fallout from the Flattenable change, update all its uses.

Additionnaly, fix/tighten size checks when (un)flatten()ing
things.

Removed the assumption by some flattenables (e.g.: Fence)
that the size passed to them would be exact (it can
and will be larger in some cases)

The code in Parcel is a bit complicated so that we don't
have to expose the full implementation (and also to
keep the code smallish).

Change-Id: I0bf1c8aca2a3128491b4f45510bc46667e566dde
ence.h
raphicBuffer.h
egion.h
c2414bb0989763641ca57cf72c11ef6d86565a23 26-Jul-2013 Mathias Agopian <mathias@google.com> get rid of HAL pixelformats 5551 and 4444

Change-Id: I39409103144c1ba09078c4ddc323a58987fb09ea
ixelFormat.h
5773d3f5b2694c647e010246dff99acc70131289 26-Jul-2013 Mathias Agopian <mathias@google.com> get rid of PixelFormatInfo and simplify things

Change-Id: I025a362cc12d5b9b794fac14be500e25aab65396
isplayInfo.h
ixelFormat.h
1fe854f6788f6fe9177fcca85185d13ba37d1911 26-Jul-2013 Mathias Agopian <mathias@google.com> get rid of PIXEL_FORMAT_A_8

Change-Id: I4e409a69c01b95b48f20112084dd927e2d043407
ixelFormat.h
2381033ad001960c606d13e3a4198e5da3672ec7 17-May-2013 Mathias Agopian <mathias@google.com> am e6eef6c1: am ea74d3b7: make the warning timout of Fence::waitForever() implicit and longer

* commit 'e6eef6c136b007f3a7e1e19884875b855c0c5f95':
make the warning timout of Fence::waitForever() implicit and longer
ea74d3b78d607cde17790a7bb83e6f68ffd34cfd 17-May-2013 Mathias Agopian <mathias@google.com> make the warning timout of Fence::waitForever() implicit and longer

- timeout is now 3 seconds instead of 1
- simplifies the API a bit
- allows us to change/tweak this timeout globaly

Bug: 8988871

Change-Id: I8d3c6ec43a372f602fb3f29856710339f86c0ec9
ence.h
f3e85d432749ca77ad707bec523b67d741d43e6e 11-May-2013 Mathias Agopian <mathias@google.com> take the "transparent region" into account for blending

until now it was only used to discard a layer entirely.
we're now reducing the size of the layer if it is still
visible, if possible.

this works for instance when a surfaceView is used and
only the menu bar is displayed over it.

Change-Id: I3f5527c5cd1e69ecc968272c8948f1513ada8c55
ect.h
6c7f25afb75ac155bad0b3bc17c0089d0337d060 10-May-2013 Mathias Agopian <mathias@google.com> reformat Rect.{cpp|h}

Change-Id: I45b1f6646541a1abacce1e70df00a770e47b820e
ect.h
c43946b931de5dafd28f49963f9af78e05390b26 05-May-2013 Eino-Ville Talvala <etalvala@google.com> Add support for HAL_PIXEL_FORMAT_YCbCr_420_888

- Add fields to CpuConsumer::LockedBuffer for new information
- New lock methods for GraphicBuffer and GraphicBufferMapper for
the format

Bug: 8734880
Change-Id: If31f82c62d64b6942cf4cc6e5715585c03273f12
raphicBuffer.h
raphicBufferMapper.h
2ca79399b933935eb1b6c0ec1f746f8c4475369c 03-Apr-2013 Mathias Agopian <mathias@google.com> latch transparent region hint only when we get a new frame

since the transparent region hint really depends on the
content of the window containing the SurfaceView
(it's calculated by the view hierarchy based on
overlapping views), it makes sense to latch it only when
the content of the window (the app) changes.

This should help fixing drawing artifacts when changing the
layout of a window containing a SurfaceView.

Bug: 8511430
Change-Id: Ic3aa668495293cb4d82a2cd7dcf3b6a337287678
egion.h
e041716ba17674b9af957f68750ad6b2df376c22 07-Mar-2013 Mathias Agopian <mathias@google.com> Make GraphicBuffer a RefBase

- this gives us access to RefBase's refcounting debugging
- it doesn't cost much because GraphicBuffer already has a vtable

Change-Id: I7f696e421fea14b14bfaeb83880689b83e96af4d
raphicBuffer.h
3e010f3138593cc6953039ee0e3db8ee31881296 26-Feb-2013 Chris Craik <ccraik@google.com> Add createTJunctionFreeRegion

T-junction free regions are useful for rendering regions with various
geometric transformations, and the Region's span-ordered, sorted rect
list supports T-junction free storage without modification.

This approach creates a T-junction free region by splitting each
rectangle that is part of a vertical T-junction. This approach is two
pass (up and down) so that divisions can trickle up/down to other
adjacent spans.

Change-Id: Ifcf5e6fe0034c96b00ef09a4433b2b0fce8f4300
egion.h
89592bbede762588248006f20afd8bd9d4bf5a98 26-Feb-2013 Igor Murashkin <iam@google.com> GraphicBuffer.h: Remove redundant friend class declaration causing warnings

Change-Id: I8a4b0e0b4d0a1cf472de820553c31f2d42044543
raphicBuffer.h
e3c697fb929c856b59fa56a8e05a2a7eba187c3d 15-Feb-2013 Mathias Agopian <mathias@google.com> Refactoring: Rename SurfaceTextureClient to Surface

Change-Id: Ibed34175ae273608393aaa5f0a7df207dc40d709
raphicBuffer.h
82dbc7429f5f9f2b303b31dc5b9f2bfd1bbe6add 09-Nov-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: refactor frame time tracking

This change moves the frame time history tracking code out of Layer and into a
new class called FrameTracker. It also changes the tracking to use signal
timestamps from fences when available for more accurate results.

Change-Id: I323c5f075c58bf86ce363b52af885ad0f6365f2b
ence.h
dd3cb84cfbe8068790c6233b5829fae9c4a0ee93 20-Oct-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: add support for secure displays

This change adds support for displays that are not allowed to display surfaces
with the eSecure flag set. All non-virtual displays are considered secure,
while virtual displays have their secure-ness specified at creation time.

Bug: 7368436
Change-Id: I81ad535d2d1e5a7ff78269017e85b111f0098500
isplayInfo.h
b5c9dcdf3bdab1862047060b8e18c9d1831db8bb 09-Oct-2012 Mathias Agopian <mathias@google.com> Fence didn't manager sync_wait error codes properly

error codes are returned in errno, this caused ::waitForwever()
to only wait for 1 second and return improper error code (-1).

needed to help debugging 7316632

Bug: 7316632
Change-Id: Ie144f614a88393393972a3a770c6b4b0581f961a
ence.h
ba607d53c6a94ea8c4c12571980c4ad159af308b 01-Oct-2012 Jesse Hall <jessehall@google.com> Add Fence::waitForever which logs a warning timeout, and use it

Bug: 7217641
Change-Id: If0c1a613ead307c4045a47824174bf40c72bc7d7
ence.h
4803b74e2a12a508f7bbfde6f6a962fe3299c61c 25-Sep-2012 Andy McFadden <fadden@android.com> Show build config in dumpsys SurfaceFlinger

This adds a line to the "dumpsys SurfaceFlinger" output that shows
build-time configuration values.

Example:
Build configuration: [sf HAS_CONTEXT_PRIORITY] [libui] \
[libgui USE_FENCE_SYNC]

Bug 7206633

Change-Id: Ibe1856b459d34a4be6ee83a4ebfd2807e6cc68a0
iConfig.h
068d47f29dfead847999a7b33b4217ee9514152b 12-Sep-2012 Mathias Agopian <mathias@google.com> strengthen region validation

Change-Id: I75ee7bc4dd7a2f5357ac8994a23bc8b8bfb6eb44
egion.h
2401ead70099c982796ecc3ec63ec8a5570948fc 01-Sep-2012 Mathias Agopian <mathias@google.com> Add a way to retrieve a Region as a SharedBuffer

Change-Id: Ia53cb905fbc88f899521658545f990fb9217b1e1
egion.h
3ab68558fa5a4b8f792a54965a010f03385bd271 31-Aug-2012 Mathias Agopian <mathias@google.com> change how we store Region data internally

We used to keep the bounds of the region as a
separate rectangle. Instead we now store it as the last
element of the Vector<> of Rects.

This has the benefit of being slightly more efficient when
copying regions and reduces the overhead of small regions,
but more importantly will allow us to export the underlaying
SharedBuffer (eventually).

Change-Id: I80790e4fb1a09a747a5616000cfef852ac4ce9e9
egion.h
9f54ac38860761ef62d9bb8282d54ff51a1a68a3 22-Aug-2012 Jamie Gennis <jgennis@google.com> ui/Fence: change the TIMEOUT_NEVER value to -1

Change-Id: I3ef0a4c06f80990b53a8bf2eda6edbfcbefd0f34
ence.h
8683fca395d01734ec7946e9f0595ec5d7b754c6 13-Aug-2012 Mathias Agopian <mathias@google.com> improve [un]marshalling of non-binder objects

this change introduces a new class LightFlattenable<> which is
a protocol to flatten simple objects that don't require
binders or file descriptors; the benefit of this protocol is that
it doesn't require the objects to have a virtual table and give us
a consitant way of doing this.

we also introduce an implementation of this protocol for
POD structures, LightFlattenablePod<>.

Parcel has been update to handle this protocol automatically.

Sensor, Rect, Point and Region now use this new protocol.

Change-Id: Icb3ce7fa1d785249eb666f39c2129f2fc143ea4a
oint.h
ect.h
egion.h
747c480b0e3cf9401ff53421be6a82b23fdc04c2 28-Jul-2012 Ed Heyl <ed@google.com> Merge remote-tracking branch 'goog/jb-dev-mako' into jb-mr1-dev

Conflicts:
include/media/hardware/CryptoAPI.h

Change-Id: I84bf34edbef000558f088bbf1d1e5b55d6217d2e
c666cae2d5995097ec49a87e375e2afdd92802b7 26-Jul-2012 Mathias Agopian <mathias@google.com> get rid of the shared-memory control block

Change-Id: If814060aca1d2ff2619d4adcd57296983d207f7f
isplayInfo.h
0bc64be3f5198f8dda1ced21bbc957a1d76efbb7 29-Jun-2012 Naseer Ahmed <naseer@codeaurora.org> libs/ui: Add support for triple framebuffers

Change-Id: I90dd38deeeda9a3785b87286cc7d252c6f948750
ramebufferNativeWindow.h
c777b0b3b9b0ea5d8e378fccde6935765e28e329 28-Jun-2012 Jesse Hall <jessehall@google.com> Pass fences with buffers from SurfaceTextureClient

Change-Id: I09b49433788d01e8b2b3684bb4d0112be29538d3
ence.h
f9783af225aa3b41ec0af36f90941a714269abb7 25-Jun-2012 Jesse Hall <jessehall@google.com> Return fence to client in dequeuBuffer

Change-Id: Ic19750793ad993f0e85391f3cabd743ba565d4c9
ence.h
ef19414bd8b77a26f5751f3845be79025a8263fe 14-Jun-2012 Jesse Hall <jessehall@google.com> Transfer HWC release fences to BufferQueue

After a HWC set, each SurfaceFlinger Layer retrieves the release fence
HWC returned and gives it to the layer's SurfaceTexture. The
SurfaceTexture accumulates the fences into a merged fence until the
next updateTexImage, then passes the merged fence to the BufferQueue
in releaseBuffer.

In a follow-on change, BufferQueue will return the fence along with
the buffer slot in dequeueBuffer. For now, dequeueBuffer waits for the
fence to signal before returning.

The releaseFence default value for BufferQueue::releaseBuffer() is
temporary to avoid transient build breaks with a multi-project
checkin. It'll disappear in the next change.

Change-Id: Iaa9a0d5775235585d9cbf453d3a64623d08013d9
ence.h
d8e812ce6fe9ae0388e98b08456e1d18b9498239 14-Jun-2012 Jamie Gennis <jgennis@google.com> Update ANativeWindow clients for sync

This change updates the uses of ANativeWindow to use the new ANW functions that
accept and return Sync HAL fence file descriptors.

Change-Id: I3ca648b6ac33f7360e86754f924aa072f95242f6
ramebufferNativeWindow.h
f25e183a70bd631f75dce51e85b7d568472a0cdb 14-Jun-2012 Jamie Gennis <jgennis@google.com> libui: add the Fence class

This change adds the Fence class to libui for to wrap the libsync
functionality.

Change-Id: I93a31baeee608b93c14da807a32013dabf783f84
ence.h
b82203a6601728a507bc3e7d5b2b042356004aae 14-May-2012 Mathias Agopian <mathias@google.com> minor Rect.h cleanup

add getBounds(), getWidth(), getHeight(), width() and height()
are kept for backward compatibility.

Change-Id: I83837abf17dc2f8bded1beff73430e8c7d9bbdb3
ect.h
f15a83f5814219c167f87cb8aaea622fc8493499 11-May-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: add a crop to the layer state

This change adds a crop rectangle specified in window coordinates to the layer
state. The all window pixels outside this crop rectangle are treated as though
they were fully transparent. This change also adds the plumbing necessary for
WindowManager to set that crop.

Change-Id: I582bc445dc8c97d4c943d4db8d582a6ef5a66081
ect.h
59332804306c054082a39e9b004146bd03ae1d30 07-May-2012 Jamie Gennis <jgennis@google.com> libui: add the Rect::transform method

This change adds a method to Rect to transform a rectangle by a graphics HAL
transform.

Change-Id: Ic0d0988e731bdb5662faee41a5927b1242891658
Bug: 6299171
ect.h
5f2165f9455d4893b581b73a67c5431f4344b47e 25-Feb-2012 Mathias Agopian <mathias@google.com> remove dependency on android_native{s_priv|buffer}.h

Change-Id: Ie4b95f7061c240f37c504414259f92d72c4ffc89
NativeObjectBase.h
GLNativeSurface.h
ramebufferNativeWindow.h
raphicBuffer.h
ndroid_native_buffer.h
gl/android_natives.h
870b8aa15cb5c722b5d8eb7726eaa5f1a7c23d69 25-Feb-2012 Mathias Agopian <mathias@google.com> remove libui dependency on libEGL

Change-Id: I1194f04085637d5c384e134967249430cc43b6ee
GLUtils.h
ff615cc7a1cceedd705b0623b058c54669b29596 24-Feb-2012 Mathias Agopian <mathias@google.com> deprecate L_8, LA_88 and RGB_332 in sdk

re-add support for pixelformats L_8, LA_88 and RGB_332 in libui
for backward compatibility.

This may or may not fix 6058926

Bug: 6049685
Change-Id: Ic1b8b4cc994522f7fe664da64c0ef76b98bc6d53
ixelFormat.h
42e2458144778596281ea2c4a98ad671053234e0 22-Feb-2012 Mathias Agopian <mathias@google.com> remove libui's dependency on libpixelflinger

this also remove support for unused pixelformats.

Change-Id: I2c759a6d2daa740f3786ed62095def8047ae933d
ixelFormat.h
80c39180425d6053ca536f68351bee3c5a351cc4 18-Feb-2012 Mathias Agopian <mathias@google.com> frameworks/base refactoring.

First step. Move libui includes to their new home: androidfw.

Change-Id: Ic042b52fdba72f30edc3cc6339bf30b4c1b99662
nput.h
nputTransport.h
eyCharacterMap.h
eyLayoutMap.h
eyboard.h
eycodeLabels.h
owerManager.h
irtualKeyMap.h
9491e81ff6a3e29ea31c9582ee1c6ab23c0e3e54 15-Feb-2012 Jeff Brown <jeffbrown@google.com> Clean up InputChannel file descriptor data type.

File descriptors are ints.

Change-Id: Ie36733bf36ddfeaa9a09ef6ebd7bd2f1788f5d27
nputTransport.h
a18829ab231384858456a8a67b06a3f1e37d2794 13-Feb-2012 Jeff Brown <jeffbrown@google.com> Accurately track the sequence numbers of batched events.

Instead of sending finished signals immediately when appending to
a batch, record the chain of sequence numbers that were part of
the batch and then send finished signals all at once when done.
This change helps the dispatcher keep track of the true state
of the application and can improve ANR detection slightly.

This is part of a series of changes to improve input system pipelining.

Bug: 5963420
Change-Id: I463c2221e2aa8fdf1c3d670c18e39e59ab69b0db
nputTransport.h
0a63adaff2ffa945f5e105ee39aec9dcf22954e7 13-Feb-2012 Jeff Brown <jeffbrown@google.com> Enable deferred input messages to be batched.

This is part of a series of changes to improve input system pipelining.

Bug: 5963420
Change-Id: I6874d2128e880a35c6c33890c858cc6ee22af0fd
nputTransport.h
f0490c94d01aa7536e4fd3bdf6a888099ba9a5c6 07-Feb-2012 Jeff Brown <jeffbrown@google.com> Implement batching of input events on the consumer side.

To support this feature, the input dispatcher now allows input
events to be acknowledged out-of-order. As a result, the
consumer can choose to defer handling an input event from one
device (because it is building a big batch) while continuing
to handle input events from other devices.

The InputEventReceiver now sends a notification when a batch
is pending. The ViewRoot handles this notification by scheduling
a draw on the next sync. When the draw happens, the InputEventReceiver
is instructed to consume all pending batched input events, the
input event queue is fully processed (as much as possible),
and then the ViewRoot performs traversals as usual.

With these changes in place, the input dispatch latency is
consistently less than one frame as long as the application itself
isn't stalled. Input events are delivered to the application
as soon as possible and are handled as soon as possible. In practice,
it is no longer possible for an application to build up a huge
backlog of touch events.

This is part of a series of changes to improve input system pipelining.

Bug: 5963420

Change-Id: I42c01117eca78f12d66d49a736c1c122346ccd1d
nputTransport.h
6cdee9831d8d2bf8393c2d130cbdc2eced125e15 04-Feb-2012 Jeff Brown <jeffbrown@google.com> Rewrite input transport using sockets.

Since we will not longer be modifying events in place, we don't need
to use an ashmem region for input. Simplified the code to instead
use a socket of type SOCK_SEQPACKET.

This is part of a series of changes to improve input system pipelining.

Bug: 5963420

Change-Id: I05909075ed8b61b93900913e44c6db84857340d8
nputTransport.h
b8a2e98cd7edbe7513543670c94f6b5efa74462f 08-Feb-2012 Romain Guy <romainguy@google.com> Preliminary support for clipRect(Rect, Op)

This adds basic support for clip regions. It is currently disabled at compile
time. Enabling clip regions will require setting up a stencil buffer.

Change-Id: I638616a972276e38737f8ac0633692c3845eaa74
egion.h
55ef343331f5efbfe3e01bc9993d94faea236048 07-Jan-2012 Mathias Agopian <mathias@google.com> remove dead/usnused code

Change-Id: I6fa2bc6ee01790abd2c1533f043d61a5e5c8d26e
raphicLog.h
e06a1748a48317adfb1bbe4ae4f49164cba03268 30-Nov-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceMediaSource: use the vid enc usage bit" into ics-mr1
9ee44c8f9456a9fc49d78b24e8cdeb9efa632c41 28-Nov-2011 Jeff Brown <jeffbrown@google.com> Fix application launch shortcuts.

Improved quick launch bookmarks to support category-based shortcuts
instead of hardcoding package and class names for all apps.

Added a set of Intent categories for typical applications on the
platform.

Added support for some of the HID application launch usages to
reduce reliance on quick launch for special purpose keys. Some
keyboard vendors have hardcoded launch keys that synthesize
"Search + X" type key combos. The goal is to encourage them
to stop doing this by implementing more of HID.

Bug: 5674723
Change-Id: I79f1147c65a208efc3f67228c9f0fa5cd050c593
eycodeLabels.h
b7d87c40ef3f922fb10f6a4f24e6e1437ab3c7ae 22-Nov-2011 Jamie Gennis <jgennis@google.com> SurfaceMediaSource: use the vid enc usage bit

This change makes SurfaceMediaSource add the VIDEO_ENC usage bit when
allocating its GraphicBuffers rather than the HW_TEXTURE bit.

Change-Id: Ie20e225c894fdbc31cad6bb82b3b64c7e98074eb
raphicBuffer.h
882b0a59d834be5b595713079f31a2389c32fdda 16-Nov-2011 Jeff Brown <jeffbrown@google.com> Eliminate hw.keyboards system properties.

Stop using system properties to publish information about
the key character map path. Instead, we can retrieve it
on demand by asking the window manager.

It was possible to exhaust the supply of system properties
when repeatedly adding and removing input devices.

Bug: 5532806
Change-Id: Idd361a24ad7db2edc185c8546db7fb05f9c28669
nput.h
eyCharacterMap.h
eyboard.h
000e95e7ebf1a60bbb7fda604b54092f45c87f89 20-Sep-2011 Mathias Agopian <mathias@google.com> fix the float Rect in OpenGLRenderer to handle NANs

- we want functions like isEmpty() to return true if NANs are
involved in the Rect

- also clean-up the intersect familly of calls

- minor cleanup in the int32_t Rect as well

These played a role in http://b/5331198.

Bug: 5331198

Change-Id: I5369725ab482e4b83da9f1bd4cee5256e5de75b2
ect.h
73aaf0d8d22fa18e9336bdfcb97a01a242d17a23 14-Sep-2011 Jeff Brown <jeffbrown@google.com> Velocity Tracker II: The Revenge of Velocity Tracker
Bug: 5265529

Rewrote the velocity tracker to fit a polynomial curve
to pointer movements using least squares linear regression.
The velocity is simply the first derivative of this polynomial.

Clients can also obtain an Estimator that describes the
complete terms of the estimating polynomial including
the coefficient of determination which provides a measure
of the quality of the fit (confidence).

Enhanced PointerLocation to display the movement curve predicted
by the estimator in addition to the velocity vector.

By default, the algorithm computes a 2nd degree (quadratic)
polynomial based on a 100ms recent history horizon.

Change-Id: Id377bef44117fce68fee2c41f90134ce3224d3a1
nput.h
137c3c549504a1bf52b85aa983c97f10533c7083 10-Sep-2011 Jeff Brown <jeffbrown@google.com> Tweak VelocityTracker.
Bug: 5265529

Calculate the velocity using the most recent touch sample as the
point of reference instead of the oldest. This change more heavily
weights recent touch samples and reduces the sample time window
used for calculation. This significantly improves the accuracy
of fling gesture detection.

Change-Id: Ib1940933e786e5f6a731552a99bcd9400741d55f
nput.h
3599bf2c0727bc33e8136f5163eee6f398545e05 10-Aug-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: use the HWC gralloc usage bit

This change makes SurfaceFlinger always use the
GRALLOC_USAGE_HW_COMPOSER usage bit when allocating buffers that may be
passed to the HWComposer.

Change-Id: I70362a8ede2b359fb2046853f85149d597465817
raphicBuffer.h
ecc7adef2ef88428bd493ca1b21fc42a26b0fdb8 18-Aug-2011 Jeff Brown <jeffbrown@google.com> Input system bug fixes, particularly for stylus.
Bug: 5049148

Finished stylus support, including support for indirect stylus
and mouse tools.

Added TILT axis. When stylus tilt X/Y is available, it is transformed
into an orientation and tilt inclination which is a more convenient
representation and a simpler extension to the exiting API.

Touch devices now only report touch data using a single input
source. Previously touch devices in pointer mode would report
both absolute touch pad data and cooked pointer gestures.
Now we just pick one. The touch device switches modes as needed
when the focused application enables/disables pointer gestures.
This change greatly simplifies the code and reduces the load
on the input dispatcher.

Fixed an incorrect assumption that the value of ABS_(MT_)DISTANCE
would be zero whenever the stylus was in direct contact. It appears
that the correct way to determine whether the stylus is in direct
contact (rather than hovering) is by checking for a non-zero
reported pressure.

Added code to read the initial state of tool buttons and axis values
when the input devices are initialized or reset. This fixes
problems where the input mapper state might have the wrong initial
state.

Moved responsibility for cancelling pending inputs (keys down,
touches, etc.) to the InputDispatcher by sending it a device reset
notification. This frees the InputReader from having to synthesize
events during reset, which was cumbersome and somewhat brittle
to begin with.

Consolidated more of the common accumulator logic from
SingleTouchInputMapper and MultiTouchInputMapper into
TouchInputMapper.

Improved the PointerLocation output.

Change-Id: I595d3647f7fd7cb1e3eff8b3c76b85043b5fe2f0
eycodeLabels.h
5873ce46adc9e98efd6e5acbe21639a0a4d25c69 28-Jul-2011 Jeff Brown <jeffbrown@google.com> Refactor input reader to add stylus support.
Bug: 5064702

Introduced the concept of an InputListener to further decouple
the InputReader from the InputDispatcher. The InputListener
exposes just the minimum interface that the InputReader needs
to communicate with the outside world. The InputReader
passes arguments to the InputListener by reference, which makes
it easy to queue them up.

Consolidated all of the InputReader locks into one simple global
Mutex. The reason this wasn't done before was due to potential
re-entrance in outbound calls to the InputDispatcher. To fix this,
the InputReader now queues up all of the events it wants to send
using a QueuedInputListener, then flushes them outside of the
critical section after all of the event processing is finished.
Removing all of the InputMapper locks greatly simplifies the
implementation.

Added tests for new stylus features such as buttons, tool types,
and hovering.

Added some helpers to BitSet32 to handle common code patterns
like finding the first marked bit and clearing it.

Fixed a bug in VelocityTracker where the wrong pointer trace
could get cleared when handling ACTION_POINTER_DOWN. Oops.

Changed PointerCoords so it no longer stores useless zero
axis values. Removed editAxisValue because it is not very
useful when all zero value axes are absent and therefore
cannot be edited in place.

Added dispatch of stylus hover events.

Added support for distance and tool types.

Change-Id: I4cf14d134fcb1db7d10be5f2af7b37deef8f8468
nput.h
acb7b5dfc804d2e6b2e75b688f536fd38d75641a 11-Jun-2011 Pannag Sanketi <psanketi@google.com> Adding SurfaceEncoder for encoding FilterFrames

Adding SurfaceEncoder which can be used to encode
custom frame data. In a sense, it is reverse
of what SurfaceTexture does.

SurfaceEncoder takes in frames from a native window and
passes them to an encoder, thus acting like a MediaSource.
It uses GRAlloc buffers underneath for passing data.
The client side sets the geometry, format in the beginning,
which cannot be changed while the recording is going on.

Currently, there is no common pixel format that both
GRAlloc and HAL understand.
Also, the encoder cannot encode using the data from the GRAlloc
buffers.

The SurfaceEncoder_test examines mainly the buffer passage
since true encoding cannot be done at this point.
SimpleDummyRecorder 'reads' the frames in the same thread
as the start(), whereas DummyRecorder 'reads' in a separate
thread much like the MPEG4Writer. The test with DummyRecorder
is much closer to the real encoding implementation.

Related to bug id: 4529323

Change-Id: I58ec19a150f8fe4d6195196dc44f55002b46c7c8
ixelFormat.h
5d99f17e827a927938e450076857f4cf145074c2 08-Jun-2011 Jeff Brown <jeffbrown@android.com> am 61220e88: am bbbab26e: am 2c180499: Merge "Revert velocity damping. Bug: 4364920" into honeycomb-mr2

* commit '61220e880ac4d9d76b7fd50744439e68e929c697':
Revert velocity damping. Bug: 4364920
7ca7ba2064d4be0989b310907f5ddca218b58556 07-Jun-2011 Jeff Brown <jeffbrown@android.com> Revert velocity damping.
Bug: 4364920

Velocity damping proved to be a bad idea because it would
cause a significant ramp in velocity at the beginning of
a gesture, instead of the desired smooth behavior. Oh well.

Change-Id: Ie631946f47ef2492bd71fbed1ab44bbb39a875a8
nput.h
36f49c133ec0d9d14ba3a06039f9db435e4731ea 04-Jun-2011 Jeff Brown <jeffbrown@android.com> am 56503b8d: am 8186a5f0: am 10c3f367: Merge "Implement pointer acceleration." into honeycomb-mr2

* commit '56503b8ddfe5c82407da32e18061e725f668432d':
Implement pointer acceleration.
adab62038365be512aa9c21cf64df642dd075704 01-Jun-2011 Jeff Brown <jeffbrown@android.com> Implement pointer acceleration.

Bug: 4124987
Change-Id: I1f31a28f1594c55302ccabe13fe3ca6d2ff71d50
nput.h
d3e6d3e763544511a870b354f657600d25c42b91 13-Apr-2011 Jeff Brown <jeffbrown@google.com> Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)

Added a new PointerIcon API (hidden for now) for loading
pointer icons.

Fixed a starvation problem in the native Looper's sendMessage
implementation which caused new messages to be posted ahead
of old messages sent with sendMessageDelayed.

Redesigned the touch pad gestures to be defined in terms of
more fluid finger / spot movements. The objective is to reinforce
the natural mapping between fingers and spots which means there
must not be any discontinuities in spot motion relative to
the fingers.

Removed the SpotController stub and folded its responsibilities
into PointerController.

Change-Id: Ib647dbd7a57a7f30dd9c6e2c260df51d7bbdd18e
nput.h
c5982b7bee75467f50d681ad54120eadc7a8d88e 15-Mar-2011 Jeff Brown <jeffbrown@google.com> Improve VelocityTracker numerical stability. (DO NOT MERGE)

Replaced VelocityTracker with a faster and more accurate
native implementation. This avoids the duplicate maintenance
overhead of having two implementations.

The new algorithm requires that the sample duration be at least
10ms in order to contribute to the velocity calculation. This
ensures that the velocity is not severely overestimated when
samples arrive in bursts.

The new algorithm computes the exponentially weighted moving
average using weights based on the relative duration of successive
sample periods.

The new algorithm is also more careful about how it handles
individual pointers going down or up and their effects on the
collected movement traces. The intent is to preserve the last
known velocity of pointers as they go up while also ensuring
that other motion samples do not count twice in that case.

Bug: 4086785
Change-Id: I95054102397c4b6a9076dc6a0fc841b4beec7920
nput.h
247da72a5bb1e762c73723fd2d495c9a6c4f1c68 10-Mar-2011 Jeff Brown <jeffbrown@google.com> Use touch pad gestures to manipulate the pointer. (DO NOT MERGE)

1. Single finger tap performs a click.
2. Single finger movement moves the pointer (hovers).
3. Button press plus movement performs click or drag.
While dragging, the pointer follows the finger that is moving
fastest. This is important if there are additional fingers
down on the touch pad for the purpose of applying force
to an integrated button underneath.
4. Two fingers near each other moving in the same direction
are coalesced as a swipe gesture under the pointer.
5. Two or more fingers moving in arbitrary directions are
transformed into touches in the vicinity of the pointer.
This makes scale/zoom and rotate gestures possible.

Added a native VelocityTracker implementation to enable intelligent
switching of the active pointer during drags.

Change-Id: I7b7ddacc724fb1306e1590dbaebb740d3130d7cd
nput.h
e959ed2533bdc37da99fd34dafa26d1967a6b4c9 07-May-2011 Jeff Brown <jeffbrown@google.com> Add initial API for stylus and mouse buttons.

Added the concept of pointer properties in a MotionEvent.
This is currently used to track the pointer tool type to enable
applications to distinguish finger touches from a stylus.

Button states are also reported to application as part of touch events.

There are no new actions for detecting changes in button states.
The application should instead query the button state from the
MotionEvent and take appropriate action as needed.

A good time to check the button state is on ACTION_DOWN.

As a side-effect, applications that do not support multiple buttons
will treat primary, secondary and tertiary buttons identically
for all touch events.

The back button on the mouse is mapped to KEYCODE_BACK
and the forward button is mapped to KEYCODE_FORWARD.

Added basic plumbing for the secondary mouse button to invoke
the context menu, particularly in lists.

Added clamp and split methods on MotionEvent to take care of
common filtering operations so we don't have them scattered
in multiple places across the framework.

Bug: 4260011
Change-Id: Ie992b4d4e00c8f2e76b961da0a902145b27f6d83
nput.h
nputTransport.h
db05e228a4d170e644f27adc2d946558db53eb4e 10-May-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 05be6d6f to master

Change-Id: Ic6a6c5bb300f6f1d43f9ed550b284282b4f16212
16fe3c2c1fac36507ec7190537c95944943b0cb2 28-Apr-2011 Dianne Hackborn <hackbod@google.com> Better compat mode part one: start scaling windows.

First step of improving app screen size compatibility mode. When
running in compat mode, an application's windows are scaled up on
the screen rather than being small with 1:1 pixels.

Currently we scale the application to fill the entire screen, so
don't use an even pixel scaling. Though this may have some
negative impact on the appearance (it looks okay to me), it has a
big benefit of allowing us to now treat these apps as normal
full-screens apps and do the normal transition animations as you
move in and out and around in them.

This introduces fun stuff in the input system to take care of
modifying pointer coordinates to account for the app window
surface scaling. The input dispatcher is told about the scale
that is being applied to each window and, when there is one,
adjusts pointer events appropriately as they are being sent
to the transport.

Also modified is CompatibilityInfo, which has been greatly
simplified to not be so insane and incomprehendible. It is
now simple -- when constructed it determines if the given app
is compatible with the current screen size and density, and
that is that.

There are new APIs on ActivityManagerService to put applications
that we would traditionally consider compatible with larger screens
in compatibility mode. This is the start of a facility to have
a UI affordance for a user to switch apps in and out of
compatibility.

To test switching of modes, there is a new variation of the "am"
command to do this: am screen-compat [on|off] [package]

This mode switching has the fundamentals of restarting activities
when it is changed, though the state still needs to be persisted
and the overall mode switch cleaned up.

For the few small apps I have tested, things mostly seem to be
working well. I know of one problem with the text selection
handles being drawn at the wrong position because at some point
the window offset is being scaled incorrectly. There are
probably other similar issues around the interaction between
two windows because the different window coordinate spaces are
done in a hacky way instead of being formally integrated into
the window manager layout process.

Change-Id: Ie038e3746b448135117bd860859d74e360938557
nput.h
697526bc9e44ce61c88614f98387ae8bbf0a187e 01-May-2011 Iliyan Malchev <malchev@google.com> frameworks/base: android_native_buffer_t -> ANativeWindowBuffer

Change-Id: Idc2eabaa805bb6d308ebb315872623f28d428417
Signed-off-by: Iliyan Malchev <malchev@google.com>
ramebufferNativeWindow.h
raphicBuffer.h
ec10d231c0eaadbcb143932e5c1bb7c1953125a7 02-May-2011 Iliyan Malchev <malchev@google.com> frameworks/base: move ANativeWindow/android_native_buffer_t out

These definitions have been moved to system/core.

Change-Id: I021b6b5f2fd72d538b5ccdcb33860ebd3004d9ad
Signed-off-by: Iliyan Malchev <malchev@google.com>
ndroid_native_buffer.h
gl/android_natives.h
41abd67302b52aefadc2b3dea42226f16bf6d9ba 15-Apr-2011 Iliyan Malchev <malchev@google.com> frameworks/base: make the ANativeWindow query() method const

query() does not modify the object's data, so it needs to be a const method

Change-Id: I67c40a3c865461e6f1cc2193fd2d74286ff6ac8f
Signed-off-by: Iliyan Malchev <malchev@google.com>
ramebufferNativeWindow.h
gl/android_natives.h
9cdb01da71934e98b6732db0f5758ea4edd5d5c7 29-Apr-2011 Mathias Agopian <mathias@google.com> get rid of dependency on copybit HAL module

Change-Id: Ia608099a2426c11a91d33063ba53c93e1eccb428
egion.h
4815f2a6ada7941680b29581d5cf5a5ed168f618 13-Apr-2011 Jeff Brown <jeffbrown@google.com> Initial checkin of spot presentation for touchpad gestures.

Added a new PointerIcon API (hidden for now) for loading
pointer icons.

Fixed a starvation problem in the native Looper's sendMessage
implementation which caused new messages to be posted ahead
of old messages sent with sendMessageDelayed.

Redesigned the touch pad gestures to be defined in terms of
more fluid finger / spot movements. The objective is to reinforce
the natural mapping between fingers and spots which means there
must not be any discontinuities in spot motion relative to
the fingers.

Removed the SpotController stub and folded its responsibilities
into PointerController.

Change-Id: I5126b1e69d95252fda7f2a684c9287e239a57163
nput.h
02988ec716897ac6d501e732fc7cbef612d5fab6 01-Apr-2011 Jeff Brown <jeffbrown@google.com> Merge "Add a little input event consistency verifier."
3847f62209bef63735e8f72d04af1d845f67301c 01-Mar-2011 Jeff Brown <jeffbrown@google.com> Add a little input event consistency verifier.

The idea is to assist with debugging by identifying cases in which
the input event stream is corrupted.

Change-Id: I0a00e52bbe2716be1b3dfc7c02a754492d8e7f1f
nput.h
8f2fff35b01f704ac7999220d16e15e950230049 31-Mar-2011 Jeff Brown <jeffbrown@google.com> Merge "Add input filter mechanism for accessibility."
37159af66d7c594f4f1494d4112d087bd03e328e 30-Mar-2011 Jeff Brown <jeffbrown@google.com> Add input filter mechanism for accessibility.

This patch adds a mechanism for capturing, filtering, transforming
and injecting input events at a very low level before the input
dispatcher attempts to deliver them to applications. At this time,
the mechanism is only intended to be used by the accessibility
system to implement built-in system-level accessibility affordances.

The accessibility input filter is currently just a stub.
It logs the input events receives and reinjects them unchanged,
except that it transforms KEYCODE_Q into KEYCODE_Z.

Currently, the accessibility input filter is installed whenever
accessibility is enabled. We'll probably want to change that
so it only enables the input filter when a screen reader is
installed and we want touch exploration.

Change-Id: I35764fdf75522b69d09ebd78c9766eb7593c1afe
nput.h
1cd921eab3f7feb2391a22c374c408564779cc6e 31-Mar-2011 Mathias Agopian <mathias@google.com> Revert "retire android_native_window_t"

this type is still used by partner's source trees.
we will get rid of it in next release's timeframe.

This reverts commit 7b49b976277cb3538242151e7dbd24681ddec73e.
gl/android_natives.h
5cfbdc87d631cd2c885a365177ab44b38fa55186 24-Mar-2011 Iliyan Malchev <malchev@google.com> retire android_native_window_t

Change-Id: I232c526168e1a93977d1c2d0fa74c8937cdeb23b
Signed-off-by: Iliyan Malchev <malchev@google.com>
gl/android_natives.h
edc5ac145b136fe15203996b2c4b7a54c6f574b0 17-Mar-2011 Eino-Ville Talvala <etalvala@google.com> Merge "Add support for timestamps into SurfaceTexture."
1d01a12e7150be569557b64da9b8663c62c13594 18-Feb-2011 Eino-Ville Talvala <etalvala@google.com> Add support for timestamps into SurfaceTexture.

API addition: The timestamps are represented as nanoseconds from some
arbitrary time point. Like the SurfaceTexture transform matrix, the
timestamp retrieved by getTimestamp is for the last frame sent to the
GL texture using updateTexImage().

Camera HAL change: Expect vendors to set these timestamps using
native_window_set_buffers_timestamp(). For now, they are
autogenerated by SurfaceTextureClient if set_buffers_timestamp() is
never called, but such timing is likely not accurate enough to pass a
CTS test.

bug:3300707

Change-Id: Ife131a0c2a826ac27342e11b8a6c42ff49e1bea7
gl/android_natives.h
5aaab9c6d865044aacbcfa22f4b00f9c2b715c3c 08-Mar-2011 Jeff Brown <jeffbrown@google.com> Add 3D mode key and others.

Related to an AOSP change request.

Change-Id: I3f4f84b56a1af626a8783f5ecbb823eb12ba9fbe
eycodeLabels.h
e3d4a68f2d09098bda8c6ca6c3826877365c7267 16-Mar-2011 Jeff Brown <jeffbrown@google.com> Merge "Improve VelocityTracker numerical stability."
1593354388f622f189063314e97389f148a30b7f 15-Mar-2011 Jeff Brown <jeffbrown@google.com> Improve VelocityTracker numerical stability.

Replaced VelocityTracker with a faster and more accurate
native implementation. This avoids the duplicate maintenance
overhead of having two implementations.

The new algorithm requires that the sample duration be at least
10ms in order to contribute to the velocity calculation. This
ensures that the velocity is not severely overestimated when
samples arrive in bursts.

The new algorithm computes the exponentially weighted moving
average using weights based on the relative duration of successive
sample periods.

The new algorithm is also more careful about how it handles
individual pointers going down or up and their effects on the
collected movement traces. The intent is to preserve the last
known velocity of pointers as they go up while also ensuring
that other motion samples do not count twice in that case.

Bug: 4086785
Change-Id: I2632321232c64d6b8faacdb929e33f60e64dcdd3
nput.h
cefc876234dcbbc3f973862c8c8bbdf4dc18296e 15-Mar-2011 Jamie Gennis <jgennis@google.com> am ceb7cb14: am 02805a40: Merge "ANativeWindow: add query for the concrete type." into honeycomb-mr1

* commit 'ceb7cb1460484eda1a3cb9cd271d7caf3a3dcbd1':
ANativeWindow: add query for the concrete type.
391bbe2246a7547dbf3460c231b3c5ba691d4eb1 14-Mar-2011 Jamie Gennis <jgennis@google.com> ANativeWindow: add query for the concrete type.

This change adds a query to the ANativeWindow interface for getting the
concrete type of the ANativeWindow.

Bug: 4086509
Change-Id: I64aa86d72fbca3b52a98e1fc35608737781a3178
gl/android_natives.h
fa773aa745325263745202f822335dfeec0e4c67 10-Mar-2011 Jeff Brown <jeffbrown@google.com> Use touch pad gestures to manipulate the pointer.

1. Single finger tap performs a click.
2. Single finger movement moves the pointer (hovers).
3. Button press plus movement performs click or drag.
While dragging, the pointer follows the finger that is moving
fastest. This is important if there are additional fingers
down on the touch pad for the purpose of applying force
to an integrated button underneath.
4. Two fingers near each other moving in the same direction
are coalesced as a swipe gesture under the pointer.
5. Two or more fingers moving in arbitrary directions are
transformed into touches in the vicinity of the pointer.
This makes scale/zoom and rotate gestures possible.

Added a native VelocityTracker implementation to enable intelligent
switching of the active pointer during drags.

Change-Id: I5ada57e7f2bdb9b0a791843eb354a8c706b365dc
nput.h
46689da7ee29902f2ebebd6224f566c4deccc274 09-Mar-2011 Jeff Brown <jeffbrown@google.com> Input improvements and bug fixes.

Associate each motion axis with the source from which it comes.
It is possible for multiple sources of the same device to define
the same axis. This fixes new API that was introduced in MR1.
(Bug: 4066146)

Fixed a bug that might cause a segfault when using a trackball.

Only fade out the mouse pointer when touching the touch screen,
ignore other touch pads.

Changed the plural "sources" to "source" in several places in
the InputReader where we intend to refer to a particular source
rather than to a combination of sources.

Improved the batching code to support batching events from different
sources of the same device in parallel. (Bug: 3391564)

Change-Id: I0189e18e464338f126f7bf94370b928e1b1695f2
nput.h
ec8a5ef78dc356fdfa3313e6e54c7074ecc9ea42 09-Mar-2011 Jamie Gennis <jgennis@google.com> Merge "ANativeWindow: add queues-to-window-composer check." into honeycomb-mr1
134f0422866e8985188ed10dfbdcb8e6c34b87f7 08-Mar-2011 Jamie Gennis <jgennis@google.com> ANativeWindow: add queues-to-window-composer check.

This change adds a new 'method' to the ANativeWindow interface to check
whether buffers queued to the window will be sent directly to the system
window compositor.

Change-Id: I4d4b199e328c110b68b250029aea650f03c8724d
Bug: 3495535
gl/android_natives.h
e89d1041ddc81a85c73f00f94a978e32597afa68 04-Mar-2011 Jeff Brown <jeffbrown@google.com> Joystick tweaks. (DO NOT MERGE)

Ensure that the joystick can always reach -1.0, 0.0 and 1.0 positions
even when noise filtering is applied. (Bug: 3514510)

Add support for a few more standard axes.

Add additional mapping modes for axes.
Some axes are inverted from standard interpretation
or are actually intended to be split into two distict axes
such as left/right trigger controls or accelerator/brake.

Add key layout file for a G25 racing wheel and XBox 360 controller
to tweak behavior. They work fine without them but the axis mappings
are not ideal.

Change-Id: I0fddd90309af4dc14d35f34fe99ed6e521c0b7c7
eyLayoutMap.h
eycodeLabels.h
d5ed285606a9f28d2102e086aaee5c9d1cb819b9 03-Mar-2011 Jeff Brown <jeffbrown@google.com> Wake screen from external HID peripherals.

Added some plumbing to enable the policy to intercept motion
events when the screen is off to handle wakeup if needed.

Added a basic concept of an external device to limit the scope
of the wakeup policy to external devices only. The wakeup policy
for internal devices should be based on explicit rules such as
policy flags in key layout files.

Moved isTouchEvent to native.

Ensure the dispatcher sends the right event type to userActivity
for non-touch pointer events like HOVER_MOVE and SCROLL.

Bug: 3193114
Change-Id: I15dbd48a16810dfaf226ff7ad117d46908ca4f86
nput.h
80f3e7cc1506bbb4bec458e15629805a7c1df7ee 02-Mar-2011 Jeff Brown <jeffbrown@google.com> Fade out the mouse pointer after inactivity or other events.

Fades out the mouse pointer:
- after 15 seconds of inactivity normally
- after 3 seconds of inactivity in lights out mode
- after a non-modifier key down
- after a touch down

Extended the native Looper to support enqueuing time delayed
messages. This is used by the PointerController to control
pointer fade timing.

Change-Id: I87792fea7dbe2d9376c78cf354fe3189a484d9da
nput.h
eyboard.h
9d4d6c101d90d4a1d1ca9413cf3eb89d1f1898d6 27-Feb-2011 Jamie Gennis <jgennis@google.com> Add the MIN_UNDEQUEUED_BUFFERS query to ANW.

This change adds a new query to ANativeWindow for getting the minimum
number of buffers that must be left un-dequeued during the steady-state
operation of the ANativeWindow.

Change-Id: Ie8c461fc26b02ecde02ddb4f95bf763662cf1551
Related-Bug: 3356050
gl/android_natives.h
3ea4de826d95c580c28d854c677ded0d15d220a8 19-Feb-2011 Jeff Brown <jeffbrown@google.com> Add new axes for joysticks and mouse wheels.

Added API on InputDevice to query the set of axes available.
Added API on KeyEvent and MotionEvent to convert keycodes and axes
to symbolic name strings for diagnostic purposes.
Added API on KeyEvent to query if a given key code is a gamepad button.
Added a new "axis" element to key layout files to specify the
mapping between raw absolute axis values and motion axis ids.
Expanded the axis bitfield to 64bits to allow for future growth.
Modified the Makefile for keyboard prebuilts to run the keymap
validation tool during the build.
Added layouts for two game controllers.
Added default actions for game pad button keys.
Added more tests.
Fixed a bunch of bugs.

Change-Id: I73f9166c3b3c5bcf4970845b58088ad467525525
nput.h
eyLayoutMap.h
eyboard.h
eycodeLabels.h
b2d4435dfa44531ee6025563571cfd77cd1b4f97 17-Feb-2011 Jeff Brown <jeffbrown@google.com> Fix a regression with MotionEvent parceling.

Also added some more unit tests.

Change-Id: I413654294d1a998eec056884e6df5eaa50f3daf4
nput.h
3e3414636c71948e3f4b162b4e5b773c77d37098 15-Feb-2011 Jeff Brown <jeffbrown@google.com> Add support for arbitrary axes in MotionEvents.

This change makes it possible to extend the set of axes that
are reported in MotionEvents by defining new axis constants.

The MotionEvent object is now backed by its C++ counterpart
to avoid having to maintain multiple representations of the
same data.

Change-Id: Ibe93c90d4b390d43c176cce48d558d20869ee608
nput.h
79676ac8e6a95fd1b1fad2b1032f01d582614055 31-Jan-2011 Jamie Gennis <jgennis@google.com> am 09443aeb: am 62884505: Merge "Reset ANativeWindow crop on buffer geometry changes." into honeycomb

* commit '09443aeb6470d66f5bc1938b70d74b3e2f9bbbb9':
Reset ANativeWindow crop on buffer geometry changes.
68f9127e88ca6fd849d0f28bcd8776e04aab22e6 29-Jan-2011 Jamie Gennis <jgennis@google.com> Reset ANativeWindow crop on buffer geometry changes.

This changes the ANativeWindow API and the two implementations to reset
the window's crop rectangle to be uncropped when the window's buffer
geometry is changed.

Bug: 3359604
Change-Id: I64283dc8382ae687787ec0bebe6a5d5b4a0dcd6b
gl/android_natives.h
16f0453fee84c6aad59fe0d1c7d36f061d46cffc 20-Jan-2011 Glenn Kasten <gkasten@google.com> Protected surface API

To be used by DRM framework, implemented by display HAL

Change-Id: I054a07a94f4d5dbe792f3a597e2e49a100d90eb2
raphicBuffer.h
ae1d9d7412ff03d76641b75cfa8c7ddecf123b55 26-Jan-2011 Jeff Brown <jeffbrown@google.com> am 12b2dc90: am b1e0a870: Merge "Fix crashes caused by some input devices." into honeycomb

* commit '12b2dc90883ef4f930a17907acdef3677b0598a5':
Fix crashes caused by some input devices.
eb8b9d8a22f521816ce691077ae625eeb9dbb6e0 26-Jan-2011 Jeff Brown <jeffbrown@google.com> Fix crashes caused by some input devices.

The touch screen sometimes reports more than 10 pointers even though that's
all we asked for. When this happens, we start dropping events with more
than 10 pointers. This confuses applications and causes them to crash.
Raised the limit to 16 pointers.
Bug: 3331247

The default behavior was to identify all touch devices as touch screens.
External devices that are plugged in are more likely to be touch pads
not attached to a screen. Changed the default to be a touch pad
and renamed some internal constants to avoid confusion.

A certain mouse happens to also behave like a touch pad. That caused
problems because we would see multiple concurrent traces of motion events
coming from the same input device so we would batch them up.
Added code to ensure that we don't batch events unless they come from
the same *source* in addition to coming from the same *device*.

Due to batching or misbehaving drivers, it's possible for the set of
pointer ids to be different from what we expect when it comes time to
split motion events across windows. As a result, we can generate motion
events with 0 pointers. When we try to deliver those events, we cause
an error in the InputTransport so we tear down the InputChannel and kill
the application.
Added code to check out assumption about pointer ids and drop the
event gracefully instead.

Patched up the tests to take into account the change in default behavior
for identifying touch screens and touch pads.

Change-Id: Ic364bd4cb4cc6335d4a1213a26d6bdadc7e33505
nput.h
6453b75d38b4f11e6efcb4c765e9e98248bd2b7e 20-Jan-2011 Jeff Brown <jeffbrown@google.com> am 5f668c6e: am 8b9df978: Merge "Fix getSwitchState." into honeycomb

* commit '5f668c6e6bb2515325632691a804a7c8f24ebb09':
Fix getSwitchState.
430c21ea871436df1ac5687f1fb19908667b1a10 20-Jan-2011 Jeff Brown <jeffbrown@google.com> Fix getSwitchState.

InputReader::getSwitchState always returns AKEY_STATE_UNKNOWN
because SwitchInputMapper::getSources() returns 0 which cannot
match any source mask including AINPUT_SOURCE_ANY. As a result
initial lid switch detection is broken.

This change adds a new source constant AINPUT_SOURCE_SWITCH
that indicates that the source has switches.

Change-Id: I5321ecf0ce84f1c2b4535f6c163d3f4dcf9b7a9b
nput.h
218e7c74e62b1fbc0984c468ceec2fb5f7c328ce 16-Jan-2011 Jeff Brown <jeffbrown@google.com> Add joystick support to framework.

Change-Id: I95374436708752e1a9cff3f85c5b9bc3e0987961
eycodeLabels.h
8ba32fade11abb73f3fd47ea0953c9528eb5b91f 20-Dec-2010 Jamie Gennis <jgennis@google.com> Add the SurfaceTexture C++ implementation.

This change adds the C++ implementation of SurfaceTexture and related
classes. The goal of this is for a SurfaceTexture to be passed to
camera service or Stagefright in place of a Surface to allow camera
preview or decoded video frames to be streamed to an OpenGL ES texture
that an application can use.

Change-Id: I55c83a7017f1ecb81c9c9e3252cbd118b914296c
raphicBuffer.h
41250361577ce85d30b29ef530cfb7bea7d0604d 03-Jan-2011 Jeff Brown <jeffbrown@google.com> Mouse pointer integration.

Added support for loading the pointer icon from a resource.

Moved the system server related bits of the input manager out
of libui and into libinput since they do not need to be linked into
applications.

Change-Id: Iec11e0725b3add2b905c51f8ea2c3b4b0d1a2d67
isplayInfo.h
ventHub.h
nputDispatcher.h
nputManager.h
nputReader.h
ointerController.h
4c501a42173bfc0c7c9ee32312db392c59b67e13 24-Dec-2010 Jeff Brown <jeffbrown@google.com> Add initial support for cursor-based pointing devices.

Some parts stubbed out but you can plug in a mouse and move
a green cursor around to interact with the UI.

Change-Id: I80d597a7f11d3bd92041890f74b3c77326975e6e
ventHub.h
nputReader.h
ointerController.h
a5529c8778c2f407f482fc12165aeb76c0f505c2 08-Dec-2010 Mathias Agopian <mathias@google.com> remove support for PUSH_BUFFER surfaces and overlays

the same functionality is now supported through
the h/w composer HAL, and YUV support in the GPU.

Change-Id: I8146605449954b8e8fd7f78810b7d873c2d8f5bf
Overlay.h
verlay.h
1d21a9cafc534c34a2f28c985c4c7aa176d0e67b 02-Dec-2010 Erik Gilling <konkers@android.com> surfaceflinger: add support for gralloc dump hooks

Change-Id: Ib6f539ed0132b70d040d653c03d52cc04249ac3c
ramebufferNativeWindow.h
02d85b5021dc3e9c042e1e3426fae2f0a903595b 07-Dec-2010 Jeff Brown <jeffbrown@google.com> Add support for fallback keycodes.

This change enables the framework to synthesize key events to implement
default behavior when an application does not handle a key.
For example, this change enables numeric keypad keys to perform
their associated special function when numlock is off.

The application is informed that it is processing a fallback keypress
so it can choose to ignore it.

Added a new keycode for switching applications.

Added ALT key deadkeys.

New default key mappings:
- ESC -> BACK
- Meta+ESC -> HOME
- Alt+ESC -> MENU
- Meta+Space -> SEARCH
- Meta+Tab -> APP_SWITCH

Fixed some comments.
Fixed some tests.

Change-Id: Id7f3b6645f3a350275e624547822f72652f3defe
nputDispatcher.h
nputReader.h
nputTransport.h
eyCharacterMap.h
eycodeLabels.h
b5a00fcb71426492f248ed49a0514a9b8d385065 08-Dec-2010 Mathias Agopian <mathias@google.com> am 48f42f8c: am 4153bf3a: Merge "[3171580] don\'t automatically log GraphicBuffer allocation failures" into gingerbread

* commit '48f42f8c3fbd33b2f46c6290ff5963dd58938cf9':
[3171580] don't automatically log GraphicBuffer allocation failures
372c56e98b93647b7050e518c285057a8a72bc74 07-Dec-2010 Mathias Agopian <mathias@google.com> am 4153bf3a: Merge "[3171580] don\'t automatically log GraphicBuffer allocation failures" into gingerbread

* commit '4153bf3a259624a2f2dc497b77b225a1fb517abc':
[3171580] don't automatically log GraphicBuffer allocation failures
678bdd6349344df254cc0c3377a40fd99e216635 04-Dec-2010 Mathias Agopian <mathias@google.com> [3171580] don't automatically log GraphicBuffer allocation failures

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
raphicBuffer.h
raphicBufferAllocator.h
db360642ed7a48eb3b3607a791bbe449cc6529bb 02-Dec-2010 Jeff Brown <jeffbrown@google.com> Improve support for external keyboards.

Use Vendor ID, Product ID and optionally the Version to
locate keymaps and configuration files for external devices.

Moved virtual key definition parsing to native code so that
EventHub can identify touch screens with virtual keys and load
the appropriate key layout file.

Cleaned up a lot of old code in EventHub.

Fixed a regression in ViewRoot's fallback event handling.

Fixed a minor bug in FileMap that caused it to try to munmap
or close invalid handled when released if the attempt to map
the file failed.

Added a couple of new String8 conveniences for formatting strings.

Modified Tokenizer to fall back to open+read when mmap fails since
we can't mmap sysfs files as needed to open the virtual key
definition files in /sys/board_properties/.

Change-Id: I6ca5e5f9547619fd082ddac47e87ce185da69ee6
ventHub.h
nput.h
nputReader.h
eyboard.h
irtualKeyMap.h
53c16642e2f8176b26f61b98328051f6dd1234ae 19-Nov-2010 Jeff Brown <jeffbrown@google.com> Ensure the ShortcutManager uses the correct key character map.

The ShortcutManager used to only receive the key code of the key event
that triggered the shortcut. This change now provides the shortcut
manager with the whole key event so it can look up the associated
character using the correct key character map.

To make this more efficient, added a mechanism for recycling
key events. At the moment it is only used by key events owned by the
system process, since clients of the existing API (such as Views)
might continue to hold on to key events after dispatch has finished so
they would break if the key event were recycled by the framework.

Deprecated KeyCharacterMap.BUILT_IN_KEYBOARD.

Change-Id: I4313725dd63f2be01c350c005a41c7fde9bc67e8
nput.h
nputDispatcher.h
6688837ff6a959b4f59d9a4249aac1504f590a4b 30-Nov-2010 Jeff Brown <jeffbrown@google.com> Support non-orientation aware keyboards and other devices.

Fixed a bug with dpad keys on external keyboards being rotated
according to the display orientation by adding a new input device
configuration property called "keyboard.orientationAware".

Added a mechanism for overriding the key layout and key character
map in the input device configuration file using the new
"keyboard.layout" and "keyboard.characterMap" properties.

Also added "trackball.orientationAware", "touch.orientationAware" and
"touch.deviceType" configuration properties.

Rewrote the configuration property reading code in native code
so that it can be used by EventHub and other components.

Added basic support for installable idc, kl, and kcm files
in /data/system/devices. However, there is no provision for
copying files there yet.

Disabled long-press character pickers on full keyboards so that
key repeating works as expected.

Change-Id: I1bd9f0c3d344421db444e7d271eb09bc8bab4791
ventHub.h
nput.h
nputReader.h
eyboard.h
ad1894d8dfcb56d04e7c7e80bcaa018bf4ec203f 24-Nov-2010 Joe Onorato <joeo@google.com> Allow status bar panels to be on top of the status bar.

Change-Id: I3c74ece5f7042e6302717f4263746d59d5447ec9
nputDispatcher.h
a3477c862a5debcac7dfb076749059406ec59512 11-Nov-2010 Jeff Brown <jeffbrown@google.com> Added support for full PC-style keyboards.

BREAKING CHANGE: Redesigned the key character map format to
accomodate full keyboards with more comprehensive suite of modifiers.
Old key character maps will not work anymore and must be updated.
The new format is plain text only and it not compiled to a binary
file (so the "kcm" tool will be removed in a subsequent check-in).

Added FULL keyboard type to support full PC-style keyboards.

Added SPECIAL_FUNCTION keyboard type to support special function
keypads that do not have any printable keys suitable for typing
and only have keys like HOME and POWER

Added a special VIRTUAL_KEYBOARD device id convention that maps
to a virtual keyboard with a fixed known layout. This is designed
to work around issues injecting input events on devices whose
built-in keyboard does not have a useful key character map (ie.
when the built-in keyboard is a special function keyboard only.)

Modified several places where events were being synthesized
to use the virtual keyboard.

Removed support for the "qwerty" default layout.
The new default layout is "Generic". For the most part "qwerty"
was being used as a backstop in case the built-in keyboard did
not have a key character map (probably because it was a special
function keypad) and the framework needed to be able to inject
key events anyways. The latter issue is resolved by using the
special VIRTUAL_KEYBOARD device instead of BUILT_IN_KEYBOARD.

Added the concept of a key modifier behavior so that
MetaKeyKeyListener can distinguish between keyboards that use
chorded vs. toggled modifiers.

Wrote more robust key layout and key character map parsers
to enable support for new keyboard features and user installable
key maps.

Fixed a bug in InputReader generating key ups when keys
are released out of sequence.

Updated tons of documentation.

Currently QwertyKeyListener is being used for full keyboards
with autotext and capitalization disabled. This mostly works
but causes some problems with character pickers, etc.
These issues will be resolved in subsequent changes.

Change-Id: Ica48f6097a551141c215bc0d2c6f7b3fb634d354
ventHub.h
eyCharacterMap.h
eyLayoutMap.h
eyboard.h
3f02b88af646eb950edb44e584b6a82be06c709a 18-Nov-2010 Jean-Baptiste Queru <jbq@google.com> am 5e069074: am a15e4886: Merge "Framebuffer: Support variable number of framebuffers in the UI"

* commit '5e0690745a45f99d12d940dd4aaae814b00a429e':
Framebuffer: Support variable number of framebuffers in the UI
af1097658321bfdfaf0cc65214a94bfcdee372ce 18-Nov-2010 Jean-Baptiste Queru <jbq@google.com> am a15e4886: Merge "Framebuffer: Support variable number of framebuffers in the UI"

* commit 'a15e4886de8f75f3cb137f51743d330414c910e8':
Framebuffer: Support variable number of framebuffers in the UI
e33a9ecc25b91d98ea75e3c14fd24c0c7fce5089 11-Nov-2010 Jeff Brown <jeffbrown@google.com> Enable touch splitting for all windows by default.

New default only applies to applications with targetSdkVersion >=
HONEYCOMB. Old applications default to no touch splitting for
their windows.

In addition, enabled split touch for various system windows.

Bug: 3049580
Change-Id: Idc8da9baa2cd8e1e4e76af8967d7b6a5ccb94427
nputDispatcher.h
af34db4dcb7dac2f69753f76c438e4a47eda93ef 09-Nov-2010 Jason Bayer <bayer@google.com> Add new keycodes initially used for GoogleTV devices.

Change-Id: I1b901037d6d401931dd3ec6f7d5e1e6ad165d1c9
eycodeLabels.h
d94206c41dfbac8340b86864d9e05cdc3a3a87ba 08-Nov-2010 Joe Onorato <joeo@google.com> The CHEEK_TOUCH stuff never worked. Remove it.

Bug: 3104906
Change-Id: Ia37236ba1775fc3ec8c111e2e0b85b105e0dea6a
owerManager.h
81499912348194a9432841398a0d337fa4079c98 05-Nov-2010 Jeff Brown <jeffbrown@google.com> Tell system server whether the app handled input events.

Refactored ViewRoot, NativeActivity and related classes to tell the
dispatcher whether an input event was actually handled by the application.

This will be used to move more of the global default key processing
into the system server instead of the application.

Change-Id: If06b98b6f45c543e5ac5b1eae2b3baf9371fba28
nputDispatcher.h
nputTransport.h
71484f2f76457287a1fbf5791f530c2b2459aa0c 03-Nov-2010 Rodrigo Obregon <robregon@ti.com> Framebuffer: Support variable number of framebuffers in the UI

This change defines a macro NUM_FRAME_BUFFERS to set
the desired number of framebuffers to be used by the UI,
instead of hard-coding 2 framebuffers.

Aditional logic has been added to handle the initialization
and destruction of NUM_FRAME_BUFFERS buffers.

Change-Id: I3a4bfec3e0f453432f2ffebf084c00f574d3be46
Signed-off-by: Rodrigo Obregon <robregon@ti.com>
ramebufferNativeWindow.h
7e5660f3e28b4a8321745e013a6a66db95c2bb3e 01-Nov-2010 Jeff Brown <jeffbrown@google.com> Add plumbing for volume mute key.

Full support for the volume mute key will be implemented in a
later change.

Bug: 2912307
Change-Id: I98c27d6360f159c8b7447e04b45f442eff87b38a
eycodeLabels.h
4c766ccea57ebc82ce08d66bc7c5e2ee871e88ea 28-Oct-2010 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of df3cccf3 to master

Change-Id: I425496a9fc4e9cbc50ad6938e9dccb14827d9558
fef5b04203b0efcbd6dc5d279083d57b77f3391b 28-Oct-2010 Jeff Brown <jeffbrown@google.com> Drop all dispatcher state when dispatcher is disabled.

This patch makes the dispatcher drop all of its state when it is
disabled (when the screen turns off). This ensures that the dispatcher
does not get stuck thinking a pointer is still down if the screen
turned off while the user was touching the display (such as a fat touch
while hitting the power button).

Bug: 3098344
Change-Id: If50ef5804870aa1acd3179fd4b40e3cda58dd39d
nputDispatcher.h
bc9f0531564e3c090ae14175d77091820945aa8b 24-Oct-2010 Jeff Brown <jeffbrown@google.com> am 2ef36763: am 860c2df4: Merge "Add unit tests for native input and fix bugs identified." into gingerbread

Merge commit '2ef36763700eff5679d6012e7f078c57f1a4c465'

* commit '2ef36763700eff5679d6012e7f078c57f1a4c465':
Add unit tests for native input and fix bugs identified.
3c3cc62e243a7796f5c1e88773d34e2054cc26c6 21-Oct-2010 Jeff Brown <jeffbrown@google.com> Add unit tests for native input and fix bugs identified.

Fixed a bug where we would lose the first touch point when swiping out of
the virtual key area.

Fixed a bug where we would not send an ACTION_MOVE event in cases where
individual pointers went down/up and the remaining pointers actually moved.
This is important since many applications do not handle pointer movements
during ACTION_POINTER_DOWN or ACTION_POINTER_UP. In the case of
ACTION_POINTER_UP the movement was completely lost since all pointers were
dispatched using their old location rather than the new location.

Improved motion event validation to check for duplicate pointer ids.

Added an input source constant that was missing from the NDK api but
defined in the framework api.

Added a timestamp when reporting added/removed devices in EventHub.

Bug: 3070082
Change-Id: I3206a030f43b7616e2f48006e5a9d522c4d92e56
nputReader.h
2659f40403a7927ff421cf084f3b8e8b3e763ce9 19-Oct-2010 Jeff Brown <jeffbrown@google.com> am f2c40603: am 7689dd49: Merge "Fix bug where home presses were not poking user activity." into gingerbread

Merge commit 'f2c406030874b355ca9e4e67cc0e3aff6103c23e'

* commit 'f2c406030874b355ca9e4e67cc0e3aff6103c23e':
Fix bug where home presses were not poking user activity.
60b5776c8795b6f52d1dddf89453c42c085da50f 18-Oct-2010 Jeff Brown <jeffbrown@google.com> Add support for calibrating touch position.

Useful for tweaking touch screen alignment without having to modify the
kernel device driver x/y axis bounds.

Change-Id: I6ca43d3c138548f9dfb76aa33150a0c853698fb6
nputReader.h
ef3a8234824cc9f7c3464dd05f9aeca8ea77ebd9 18-Oct-2010 Jeff Brown <jeffbrown@google.com> Fix bug where home presses were not poking user activity.

We now poke user activity twice: once upon dequeueing an event
for dispatch and then again just before we dispatch it. The second
poke is to compensate for the fact that it can take a few seconds to
identify the dispatch target (if the application is responding slowly)
but we want to keep the display from going to sleep for X amount of time
after the app gets a chance to actually receive the event. This mirrors
pre-Gingerbread behavior.

Removed some unnecessary code that filters user activity pokes when sending
events to KeyGuard. We don't need this because KeyGuard already tells the
power manager to disable user activity.

Bug: 3101397
Change-Id: I8c3a77601fdef8f584e84cfdd11aa79da0ff51db
nputDispatcher.h
7d8733fc7a100c6bcb1d5375e0ea067d907955d2 16-Oct-2010 Jeff Brown <jeffbrown@google.com> am 5f0cbfce: am c1e7b218: Merge "Improve input device calibration format." into gingerbread

Merge commit '5f0cbfcecc4db20f897507c826296b3aac70c592'

* commit '5f0cbfcecc4db20f897507c826296b3aac70c592':
Improve input device calibration format.
e68d9e0be41ac93bd802579c012aca22086f6f9e 15-Oct-2010 Jeff Brown <jeffbrown@google.com> Add support for secure system overlays.

Manual merge from Gingerbread.

This change adds a new window type for secure system overlays
created by the system itself from non-secure system overlays that
might be created by applications that have the system alert permission.
Secure views ignore the presence of secure system overlays.

Bug: 3098519
Change-Id: Id876736fd8bf332ff9a5428bde59f5268aa49c3a
nputDispatcher.h
d9dd44d867315478bbebfbe69bb952ea8138ac4e 15-Oct-2010 Jeff Brown <jeffbrown@google.com> Add support for secure system overlays. (DO NOT MERGE)

This change adds a new window type for secure system overlays
created by the system itself from non-secure system overlays that
might be created by applications that have the system alert permission.
Secure views ignore the presence of secure system overlays.

Bug: 3098519
Change-Id: I8f8398f4fdeb0469e5d71124c21bedf121bd8c07
nputDispatcher.h
6a817e22e4b09a982ba17c1aff57f9fcb735c950 13-Sep-2010 Jeff Brown <jeffbrown@google.com> Add keycodes and meta-key modifiers to support external keyboards.

Added new key maps for external keyboards. These maps are intended to
be shared across devices by inheriting the "keyboards.mk" product
makefile as part of the device's product definition.

One of the trickier changes here was to unwind some code in
MetaKeyKeyListener that assumed that only the low 8 bits of the meta key
state were actually used. The new code abandons bitshifts in favor
of simple conditionals that are probably easier to read anyways.
The special meta key state constants used by MetaKeyKeyListener
are now (@hide) defined in KeyEvent now so as to make it clearer that they
share the same code space even if those codes are not valid for KeyEvents.

The EventHub now takes care of detecting the appropriate key layout
map and key character map when the device is added and sets system
properties accordingly. This avoids having duplicate code in
KeyCharacterMap to probe for the appropriate key character map
although the current probing mechanism has been preserved for legacy
reasons just in case.

Added support for tracking caps lock, num lock and scroll lock and
turning their corresponding LEDs on and off as needed.

The key character map format will need to be updated to correctly support
PC style external keyboard semantics related to modifier keys.
That will come in a later change so caps lock doesn't actually do
anything right now except turn the shiny LEDs on and off...

Added a list of symbolic key names to KeyEvent and improved the toString()
output for debug diagnosis. Having this list in a central place in the
framework also allows us to remove it from Monkey so there is one less
thing to maintain when we add new keycodes.

Bug: 2912307
Change-Id: If8c25e8d50a7c29bbf5d663c94284f5f86de5da4
ventHub.h
nput.h
nputReader.h
eycodeLabels.h
6b337e74f024fdd9e8ed3fdd3414bde3e1a3306e 15-Oct-2010 Jeff Brown <jeffbrown@google.com> Improve input device calibration format.

Added support for calibrating touch size for devices that report
size as an area measurement rather than as a width.
Fixed some bugs.

Bug: 3096045
Change-Id: I30a12e73752883516ed054f8af407204bca45814
nputReader.h
b6702e59726d7719d9bc644834938c180797deee 12-Oct-2010 Jeff Brown <jeffbrown@google.com> Track input state when transferring touch focus.

Copies the input state to the destination window and sends synthesic
cancelation events to the source window.

Change-Id: Ia75820b0d756ed5d6cd22dce7830251ac85141ed
nputDispatcher.h
33d54ce97d4ac84ce0e1a84e2710b45de5e1d41d 11-Oct-2010 Jeff Brown <jeffbrown@google.com> Fix an event injection bug when the policy is bypassed.

Added the concept of a "trusted" event to distinguish between events from
attached input devices or trusted injectors vs. other applications.
This change enables us to move certain policy decisions out of the
dispatcher and into the policy itself where they can be handled more
systematically.

Cherry pick of b931a1b4 from gingerbread into master.

Change-Id: I700a5f07b8b227878cea9437a289a45a245c0424
nput.h
nputDispatcher.h
d129348647325c2040190f88378c1ac39cc3151c 12-Oct-2010 Jeff Brown <jeffbrown@google.com> am 41aabeb5: am 1e6a3a53: Merge "Added more robust tracking and cancelation of events." into gingerbread

Merge commit '41aabeb51305d19747687f246080f44fc2a74435'

* commit '41aabeb51305d19747687f246080f44fc2a74435':
Added more robust tracking and cancelation of events.
1fe6dec0975d0cf7faf367f6bcb30c67d2025a47 11-Oct-2010 Jeff Brown <jeffbrown@google.com> Fix an event injection bug when the policy is bypassed.

Added the concept of a "trusted" event to distinguish between events from
attached input devices or trusted injectors vs. other applications.
This change enables us to move certain policy decisions out of the
dispatcher and into the policy itself where they can be handled more
systematically.

Change-Id: I4d56fdcdd31aaa675d452088af39a70c4e039970
nput.h
nputDispatcher.h
90f0cee685f9b13e6bac7793717a9d15de8eafe8 09-Oct-2010 Jeff Brown <jeffbrown@google.com> Added more robust tracking and cancelation of events.

This change fixes several issues where events would be dropped in the
input dispatch pipeline in such a way that the dispatcher could not
accurately track the state of the input device.

Given more robust tracking, we can now also provide robust cancelation
of input events in cases where an application might otherwise become
out of sync with the event stream due to ANR, app switch, policy decisions,
or forced focus transitions.

Pruned some of the input dispatcher log output.

Moved the responsibility for calling intercept*BeforeQueueing into
the input dispatcher instead of the input reader and added support for
early interception of injected events for events coming from trusted
sources. This enables behaviors like injection of media keys while
the screen is off, haptic feedback of injected virtual keys, so injected
events become more "first class" in a way.

Change-Id: Iec6ff1dd21e5f3c7feb80ea4feb5382bd090dbd9
nput.h
nputDispatcher.h
nputReader.h
309d3bb2f902163356f9d40b6d45c11b435d77a9 07-Oct-2010 Jamie Gennis <jgennis@google.com> Move binder magic from the Surface class to GraphicBuffer.

- Register buffers with Gralloc when unflattening a GraphicBuffer (rather than
doing it in the Surface class).
- Add support for a GraphicBuffer that wraps an android_native_window_t*.

Change-Id: I029ac086111bbac800e5ca37eb505f558b718cd8
raphicBuffer.h
6d462b1221e98a9203d84bc33b402e4fcd3f4b94 07-Oct-2010 Jeff Brown <jeffbrown@google.com> am 56364bcd: am 78d15acf: Merge "Make secure views tolerate IME overlays." into gingerbread

Merge commit '56364bcd0d1a1b064db3e83fdb64f948ce5c2ad7'

* commit '56364bcd0d1a1b064db3e83fdb64f948ce5c2ad7':
Make secure views tolerate IME overlays.
e1c290b97d4e34a4f1938ebee30eab6678b06c2a 07-Oct-2010 Mathias Agopian <mathias@google.com> am ff04e97f: am f4619308: Merge "fix [2835280] Add support for cancelling buffers to ANativeWindow" into gingerbread

Merge commit 'ff04e97faf75c435e453d4c1caf7eeac8b9c1ceb'

* commit 'ff04e97faf75c435e453d4c1caf7eeac8b9c1ceb':
fix [2835280] Add support for cancelling buffers to ANativeWindow
35cf0e9854886c7d1a76be7c64ba9d78dfca649c 05-Oct-2010 Jeff Brown <jeffbrown@google.com> Make secure views tolerate IME overlays.

Change-Id: I3cf09b9d91045f4d9c558b4aace482a7b0bbd3d8
nputDispatcher.h
19957553cbda9134f542e3374c28710d3556d1ce 02-Oct-2010 Mathias Agopian <mathias@google.com> fix [2835280] Add support for cancelling buffers to ANativeWindow

There is a new ANativeWindow::cancelBuffer() API that can be used to
cancel any dequeued buffer, BEFORE it's been enqueued. The buffer is
returned to the list of availlable buffers. dequeue and cancel are not
mutually thread safe, they must be called from the same thread or
external synchronization must be used.

Change-Id: I86cc7985bace8b6a93ad2c75d2bef5c3c2cb4d61
gl/android_natives.h
c0242197eab18a837c374b152a7450f26c22f974 02-Oct-2010 Jeff Brown <jeffbrown@google.com> am ea58d1ba: am e951ef07: Merge "Wait for initial device scan to finish before updating config." into gingerbread

Merge commit 'ea58d1bac2960c1794f048bfa5d1a60b1a3d23a1'

* commit 'ea58d1bac2960c1794f048bfa5d1a60b1a3d23a1':
Wait for initial device scan to finish before updating config.
76025e44e45881a089a853dbb08b1f09abb30fb1 02-Oct-2010 Jeff Brown <jeffbrown@google.com> am e11b76d3: am f6295b35: Merge "Minor logging changes to input dispatcher to help with debugging." into gingerbread

Merge commit 'e11b76d3efb056edea301d53a354d0730adf3520'

* commit 'e11b76d3efb056edea301d53a354d0730adf3520':
Minor logging changes to input dispatcher to help with debugging.
1ad00e96fe0d10c4fa9b870b42f3ea90b17a2d7f 02-Oct-2010 Jeff Brown <jeffbrown@google.com> Wait for initial device scan to finish before updating config.

This change narrows the opportunity for a race condition setting the
resource Configuration while devices are being updated.

Change-Id: I58efa563f4129ab0fce7108511d16a99dff7e451
ventHub.h
nputReader.h
2806e381cf08ef3073634b1fdd1f656c1750a7eb 02-Oct-2010 Jeff Brown <jeffbrown@google.com> Minor logging changes to input dispatcher to help with debugging.

Added dumpsys reporting to EventHub.
Made the formatting a bit clearer.
Added 'Locked' suffix to some internal methods of EventHub.

Change-Id: Ic449560bcce378f6361895d27c66854e9724abb0
ventHub.h
4adce423e481c50b0dad1d1e2bb52c909bb5bd89 02-Oct-2010 Jeff Brown <jeffbrown@google.com> am 57fa3e8b: am 9e32a438: Merge "Support haptic feedback for virtual keys defined in key layout." into gingerbread

Merge commit '57fa3e8b4c94125ddb5be015dd7fbde4a458894f'

* commit '57fa3e8b4c94125ddb5be015dd7fbde4a458894f':
Support haptic feedback for virtual keys defined in key layout.
956c0fb2386cb0cf92e08b199c706ed3a044ad1b 01-Oct-2010 Jeff Brown <jeffbrown@google.com> Support haptic feedback for virtual keys defined in key layout.

Change-Id: I83e4108a87332692e03791dc066206becbc7941f
nput.h
nputReader.h
eycodeLabels.h
3f0fd1897cf93dcdc910003bba613a8f02a3cd58 01-Oct-2010 Jeff Brown <jeffbrown@google.com> am 5d3cef8a: am e0c12c88: Merge "Move verbose logging of device capabilities to dumpsys." into gingerbread

Merge commit '5d3cef8a6d1baec29512764b9e0ba240ccd7fcfe'

* commit '5d3cef8a6d1baec29512764b9e0ba240ccd7fcfe':
Move verbose logging of device capabilities to dumpsys.
26c94ff615ffceee586c52f33954122d877f6c85 30-Sep-2010 Jeff Brown <jeffbrown@google.com> Move verbose logging of device capabilities to dumpsys.

Change-Id: I5d55eaebfdf049bd1ac1e7bab2758886cfefc9d7
nputReader.h
744c559ac78ecfa62d8809915a816bdbf3f87a09 27-Sep-2010 Jeff Brown <jeffbrown@google.com> Add support for transferring touch focus.

Prerequisite for drag and drop.

Change-Id: Iedbe93ed0f3e1c4083130fe66b4ba06d416afce0
nputDispatcher.h
d1b0a2bfe50e61241fab6a571941c207232d9212 27-Sep-2010 Jeff Brown <jeffbrown@google.com> Add suuport for splitting touch events across windows.

This feature is currently used to enable dragging the start and end
selection handles of a TextView at the same time. Could be used for
other things later.

Deleted some dead code in ArrowKeyMovementMethod and CursorControllers.

Change-Id: I930accd97ca1ca1917aab8a807db2c950fc7b409
nput.h
nputDispatcher.h
nputReader.h
d8816c3c4cd99cf51108f2a892c7a01b0de24057 16-Sep-2010 Jeff Brown <jeffbrown@google.com> Fix app switch latency optimization.

This optimization was broken due to recent changes in how ANRs are handled.

Change-Id: Ic99248a12755fadac8d4893e7d305b773e038d3d
nputDispatcher.h
128e33421b7744126a69226d7acea717e9b6e652 16-Sep-2010 Jeff Brown <jeffbrown@google.com> Merge "Input API review." into gingerbread
53a415e6d1661d3d6278542c960f8d0cf62f6f42 16-Sep-2010 Jeff Brown <jeffbrown@google.com> Make input dispatcher only ANR for foreground windows.

Redesigned the input dispatcher's ANR timeout mechanism so it is much
closer to Froyo's policy. ANR is only ever signalled if the dispatcher
is waiting on a window to finish processing its previous event(s) and
there is new pending input.

In the old code, we tracked the dispatch timeout separately for each
input channel. This was somewhat complicated and also resulted in the
situation where applications could ANR long after the user had pushed
them into the background.

Change-Id: I666ecada0952d4b95f1d67b9f733842b745c7f4b
nputDispatcher.h
6a3de9a424bb9ba426cf4d98b362f7b20664a9f7 15-Sep-2010 Mathias Agopian <mathias@google.com> fix a typo where the eventtags code were wrong

Change-Id: I517112a1475c10b71009a0aa9c3894c76a1f270f
raphicLog.h
b5764e066c3ba60261c2719b4f447904605bf779 15-Sep-2010 Jeff Brown <jeffbrown@google.com> Input API review.

Drop currently unsupported input features.
Add documentation comments.

Change-Id: I407d2e1dd90c5ee82983a3ccf177430d35ee7592
ventHub.h
b06cca6228aec6acfefbfae7edd768d7de4c7057 15-Sep-2010 Jeff Brown <jeffbrown@google.com> Merge "Replace epoll() with poll() and rename PollLoop to Looper." into gingerbread
59abe7e0909bf4b7bf7b9601e1e40a05f6d4fd8a 14-Sep-2010 Jeff Brown <jeffbrown@google.com> Replace epoll() with poll() and rename PollLoop to Looper.

As part of this change, consolidated and cleaned up the Looper API so
that there are fewer distinctions between the NDK and non-NDK declarations
(no need for two callback types, etc.).

Removed the dependence on specific constants from sys/poll.h such as
POLLIN. Instead looper.h defines events like LOOPER_EVENT_INPUT for
the events that it supports. That should help make any future
under-the-hood implementation changes easier.

Fixed a couple of compiler warnings along the way.

Change-Id: I449a7ec780bf061bdd325452f823673e2b39b6ae
nputDispatcher.h
nputTransport.h
35b48d10bc9e064201d3d54d2d476314684a7a05 14-Sep-2010 Mathias Agopian <mathias@google.com> Add logging of various important graphics events

There are 16 events logged in the event log:
SF_APP_DEQUEUE_BEFORE
SF_APP_DEQUEUE_AFTER
SF_APP_LOCK_BEFORE
SF_APP_LOCK_AFTER
SF_APP_QUEUE

SF_REPAINT
SF_COMPOSITION_COMPLETE
SF_UNLOCK_CLIENTS
SF_SWAP_BUFFERS
SF_REPAINT_DONE

SF_FB_POST_BEFORE
SF_FB_POST_AFTER
SF_FB_DEQUEUE_BEFORE
SF_FB_DEQUEUE_AFTER
SF_FB_LOCK_BEFORE
SF_FB_LOCK_AFTER

all events log the buffer conserned and a timestamp in microseconds.

by default the logging is not enabled, to turn it on:
adb shell service call SurfaceFlinger 1006 i31 1
adb shell setprop debug.graphic_log 1

The effect is immediate in SurfaceFlinger, but applications need to be
restarted.

Change-Id: Ifc2e31f7aed072d9a7dede20ff2ce59231edbec1
ramebufferNativeWindow.h
raphicLog.h
a665ca805c7ecda89ef95658f4d1c09ba6bd7f2e 08-Sep-2010 Jeff Brown <jeffbrown@google.com> Input dispatcher ANR handling enhancements.

This change is essentially a rewrite of the main input dispatcher loop
with the target identification folded in. Since the input dispatcher now
has all of the window state, it can make better decisions about
when to ANR.

Added a .5 second deadline for processing app switch keys. This behavior
predates Gingerbread but had not previously been ported.

Fixed some timing inaccuracies in the ANR accounting that could cause
applications to ANR sooner than they should have.

Added a mechanism for tracking key and motion events that have been
dispatched to a window so that appropriate cancelation events can be
synthesized when recovering from ANR. This change helps to keep
applications in sync so they don't end up with stuck buttons upon
recovery from ANRs.

Added more comments to describe the tricky parts of PollLoop.

Change-Id: I13dffca27acb436fc383980db536abc4d8b9e6f1
nputDispatcher.h
nputManager.h
nputReader.h
owerManager.h
61ce3982e1e5fd31f6e5b2be4d238b048a58f760 07-Sep-2010 Jeff Brown <jeffbrown@google.com> Fix key repeat delay.

Change-Id: I6216e082324ee29bf50e37acc673350ca5417c4d
nputDispatcher.h
af30ff6020990427e0e0e73e4ac4a85a6f26a8ff 02-Sep-2010 Jeff Brown <jeffbrown@google.com> Add support for secure views.

Added the MotionEvent.FLAG_WINDOW_IS_OBSCURED flag which is set by the
input manager whenever another visible window is partly or wholly obscured
the target of a touch event so that applications can filter touches
accordingly.

Added a "filterTouchesWhenObscured" attribute to View which can be used to
enable filtering of touches when the view's window is obscured.

Change-Id: I936d9c85013fd2d77fb296a600528d30a29027d2
nput.h
nputDispatcher.h
nputTransport.h
774cf1baa17eeb76d4ad969266686df9b6248aaf 01-Sep-2010 Jeff Brown <jeffbrown@google.com> Remove incomplete input device enumeration NDK API.

Change-Id: I32de74ff5fcf0e29179a2aee03ddabd22fa485bb
nput.h
38a7fabd96566a229a276e7066ac1caf5157e127 30-Aug-2010 Jeff Brown <jeffbrown@google.com> Input device calibration and capabilities.

Finished the input device capability API.
Added a mechanism for calibrating touch devices to obtain more
accurate information about the touch contact area.
Improved pointer location to show new coordinates and capabilities.
Optimized pointer location display and formatting to avoid allocating large
numbers of temporary objects. The GC churn was causing the application to
stutter very badly when more than a couple of fingers were down).
Added more diagnostics.

Change-Id: Ie25380278ed6f16c5b04cd9df848015850383498
ventHub.h
nput.h
nputReader.h
b661d66013b9803c50dc78ca0247ac39caef443a 20-Aug-2010 Mathias Agopian <mathias@google.com> fix [2931513] Add support for setting the orientation of an ANativeWindow

Also implement support for cropping.

Change-Id: Iba5888dd242bf2feaac9e9ce26e404c1f404c280
gl/android_natives.h
542412c8c96ee369e7bdc197a79a2d37c7f8e020 19-Aug-2010 Jeff Brown <jeffbrown@google.com> Add support for throttling motion events.

Change-Id: I24b3a17753e91ecda60a60fe5cd2e6b3260e033d
nputDispatcher.h
36cb115c771d8724a49512d5f4def534c731992b 18-Aug-2010 Jeff Brown <jeffbrown@google.com> Merge "Fix some input device mapping bugs with certain drivers." into gingerbread
d64c855821457515d1da78dfac65af8306b53343 18-Aug-2010 Jeff Brown <jeffbrown@google.com> Fix some input device mapping bugs with certain drivers.

On single-touch devices, pointer up/down is signalled by a BTN_TOUCH
key event. Previously we handled BTN_TOUCH immediately but some drivers
may produce the sequence BTN_TOUCH, ABS_X, ABS_Y, SYN_REPORT on pointer down
which caused us to emit a bad initial pointer down location.
Now we wait for SYN_REPORT before reporting the up or down.

On multi-touch devices, pointer up can be signalled by as little as
the sequence SYN_MT_REPORT, SYN_REPORT. This change ensures that we
handle this case.

Added support for reading ABS_MT_PRESSURE when available.
Corrected mapping of touchMajor/touchMinor on single touch devices.
Minor code cleanup.

Change-Id: Ic7ec4811241ed85a06e59b8a839ca05180d491d4
nputReader.h
7dcaa584969253e32aec19d5bd40062704aaf95b 22-Jun-2010 Jens Gulin <jens.gulin@sonyericsson.com> Keep track of remaining fd when devices are removed

Sometimes the wrong fd was accessed when the device was addressed
by device id.

The earlier implementation assumed that two arrays were in sync
but one of them was compacted when devices were removed. Instead
of that dependency the device now keeps track of it's file descriptor.

Change-Id: Ib0f320603aafb07ded354bc3687de9759c9068f2
ventHub.h
827630744a5bf05d25c2fa1fb7c53b9ab2b94a69 18-Aug-2010 Jeff Brown <jeffbrown@google.com> Optimize EventHub reads.

Change-Id: Id7d09c0a6e5c741c1e29becd2b6560772c5ff372
ventHub.h
0cacb87f022cc2bfa6c3b40217f9b230628f3fd7 18-Aug-2010 Jeff Brown <jeffbrown@google.com> Fix possible race conditions during channel unregistration.

Previously, the input dispatcher assumed that the input channel's
receive pipe file descriptor was a sufficiently unique identifier for
looking up input channels in its various tables. However, it can happen
that an input channel is disposed and then a new input channel is
immediately created that reuses the same file descriptor. Ordinarily
this is not a problem, however there is a small opportunity for a race
to arise in InputQueue.

When InputQueue receives an input event from the dispatcher, it
generates a finishedToken that encodes the channel's receive pipe fd,
and a sequence number. The finishedToken is used by the ViewRoot
as a handle for the event so that it can tell the InputQueue when
the event has finished being processed.

Here is the race:

1. InputQueue receives an input event, assigns a new finishedToken.
2. ViewRoot begins processing the input event.
3. During processing, ViewRoot unregisters the InputChannel.
4. A new InputChannel is created and is registered with the Input Queue.
This InputChannel happens to have the same receive pipe fd as
the one previously registered.
5. ViewRoot tells the InputQueue that it has finished processing the
input event, passing along the original finishedToken.
6. InputQueue throws an exception because the finishedToken's receive
pipe fd is registered but the sequence number is incorrect so it
assumes that the client has called finish spuriously.

The fix is to include a unique connection id within the finishedToken so
that the InputQueue can accurately confirm that the token belongs to
the currently registered InputChannel rather than to an old one that
happened to have the same receive pipe fd. When it notices this, it
ignores the spurious finish.

I've also made a couple of other small changes to avoid similar races
elsewhere.

This patch set also includes a fix to synthesize a finished signal
when the input channel is unregistered on the client side to
help keep the server and client in sync.

Bug: 2834068
Change-Id: I1de34a36249ab74c359c2c67a57e333543400f7b
nputDispatcher.h
8d4dfd25f7329d0cdcc8dda8bdfadd7ebec3b3a4 11-Aug-2010 Jeff Brown <jeffbrown@google.com> Fix safe mode and KeyEvent.getMaxKeyCode().

Bug: 2901731
Change-Id: I78617c1b9dee3790fc590e5af4b5083368873184
nputReader.h
b183fbd6460e6ebb7ffc568ec38ab1548dac0065 31-Jul-2010 Jeff Brown <jeffbrown@google.com> Enhanced VelocityTracker for > 5 pointers and fixed bugs.

Improved PointerLocation tool to use VelocityTracker more efficiently
and correctly when multiple pointers are down.

Fixed a bug in TouchInputMapper where it was not correctly copying
the id to index map in the last touch data. This could cause strange
behavior on secondary pointer up events.

Also added finished callback pooling in InputQueue.

Change-Id: Ia85e52ac2fb7350960ea1d7edfbe81a1b3e8267b
nputReader.h
b51719b9ae719615d5ce66ad8a81395388ef9a5b 30-Jul-2010 Jeff Brown <jeffbrown@google.com> Improve thread safety of input mappers.

Also fixed bug where old touch screen size could be reported by
getMotionRange if an orientation change occurred but the user has not
yet touched the screen.

Bug: 2877345
Change-Id: I7878f47458f310ed6ebe6a5d1b2c9bec2c598ab9
nputReader.h
f67c53eee33d2a2296f269a504e11c90904b3d39 29-Jul-2010 Jeff Brown <jeffbrown@google.com> DO NOT MERGE: Fix input event injection ANRs on UI thread.

Added a new asynchronous injection mode and made the existing
synchronization mechanism more robust.

Change-Id: Ia4aa04fd9b75ea2461a844c5b7933c831c1027e6
nputDispatcher.h
nputManager.h
e57e8950804b08c80fb69df184b2f5af84ae103c 24-Jul-2010 Jeff Brown <jeffbrown@google.com> Refactor input reader to support new device types more easily.

Refactored the input reader so that each raw input protocol is handled
by a separate subclass of the new InputMapper type. This way, behaviors
pertaining to keyboard, trackballs, touchscreens, switches and other
devices are clearly distinguished for improved maintainability.

Added partial support for describing capabilities of input devices
(incomplete and untested for now, will be fleshed out in later commits).

Simplified EventHub interface somewhat since InputReader is taking over
more of the work.

Cleaned up some of the interactions between InputManager and
WindowManagerService related to reading input state.

Fixed swiping finger from screen edge into display area.

Added logging of device information to 'dumpsys window'.

Change-Id: I17faffc33e3aec3a0f33f0b37e81a70609378612
ventHub.h
nput.h
nputDevice.h
nputManager.h
nputReader.h
3cf1c9b8443f8db238b0214a97defc09b7e6fc98 17-Jul-2010 Jeff Brown <jeffbrown@google.com> Fix individual pointer id up/down reporting.

Fix a minor threading bug in InputManager dump.

Change-Id: Ic2eecf7df5a8dc9f40561fcb03ebe58a2c073778
nputReader.h
0e8852766d2cc0ef82ed0846a4cae55ead01fdbf 16-Jul-2010 Dianne Hackborn <hackbod@google.com> Implement native key pre-dispatching to IMEs.

This significantly re-works the native key dispatching code to
allow events to be pre-dispatched to the current IME before
being processed by native code. It introduces one new public
API, which must be called after retrieving an event if the app
wishes for it to be pre-dispatched.

Currently the native code will only do pre-dispatching of
system keys, to avoid significant overhead for gaming input.
This should be improved to be smarted, filtering for only
keys that the IME is interested in. Unfortunately IMEs don't
currently provide this information. :p

Change-Id: Ic1c7aeec8b348164957f2cd88119eb5bd85c2a9f
nput.h
5c1ed84a2dec7efe914d0d1abb6834f8543fb9f1 15-Jul-2010 Jeff Brown <jeffbrown@google.com> Add support for new input sources.

Added several new coordinate values to MotionEvents to capture
touch major/minor area, tool major/minor area and orientation.

Renamed NDK input constants per convention.

Added InputDevice class in Java which will eventually provide
useful information about available input devices.

Added APIs for manufacturing new MotionEvent objects with multiple
pointers and all necessary coordinate data.

Fixed a bug in the input dispatcher where it could get stuck with
a pointer down forever.

Fixed a bug in the WindowManager where the input window list could
end up containing stale removed windows.

Fixed a bug in the WindowManager where the input channel was being
removed only after the final animation transition had taken place
which caused spurious WINDOW DIED log messages to be printed.

Change-Id: Ie55084da319b20aad29b28a0499b8dd98bb5da68
ventHub.h
nput.h
nputDevice.h
nputDispatcher.h
nputTransport.h
ce838a265d9da5b4bd3a0c833b01db6dbaa623f5 14-Jul-2010 Dianne Hackborn <hackbod@google.com> IME events are now dispatched to native applications.

And also:

- APIs to show and hide the IME, and control its interaction with the app.
- APIs to tell the app when its window resizes and needs to be redrawn.
- API to tell the app the content rectangle of its window (to layout
around the IME or status bar).

There is still a problem with IME interaction -- we need a way for the
app to deliver events to the IME before it handles them, so that for
example the back key will close the IME instead of finishing the app.

Change-Id: I37b75fc2ec533750ef36ca3aedd2f0cc0b5813cd
nput.h
nputTransport.h
8575a87b0d61d21c286321afdf193f4fac53d681 01-Jul-2010 Jeff Brown <jeffbrown@google.com> Add initial gamepad support.

Change-Id: I0439648f6eb5405f200e4223c915eb3a418b32b9
nputDevice.h
nputReader.h
eycodeLabels.h
9147d11a5f1d50496908bb1f49996e3ad23e19cc 09-Jul-2010 Dianne Hackborn <hackbod@google.com> Add ANativeWindow API for directly drawing to the surface bits.

Also other cleanup and fixes:

- We now properly set the default window format to 565.
- New APIs to set the window format and flags from native code.
- Tweaked glue for simpler handling of the "destroy" message.
- Um, other stuff.

Change-Id: Id7790a21a2fa9a19b91854d225324a7c1e7c6ade
ect.h
9e1568cc2d12a713db524515f1002e34973ab4f4 08-Jul-2010 Chris Tate <ctate@android.com> Merge "More native input dispatch work." into gingerbread
f16c26dec9651628b0c130e2504e2cc911393aea 03-Jul-2010 Jeff Brown <jeffbrown@google.com> More native input dispatch work.

Removed old input dispatch code.
Refactored the policy callbacks.
Pushed a tiny bit of the power manager state down to native.
Fixed long press on MENU.
Made the virtual key detection and cancelation a bit more precise.

Change-Id: I5d8c1062f7ea0ab3b54c6fadb058c4d5f5a9e02e
nputReader.h
efa10850665c8d60e562f3a488ae65e225614707 03-Jul-2010 Dianne Hackborn <hackbod@google.com> Add new native Looper API.

This allows us to avoid exposing the file descriptor of
the event queue; instead, you attach an event queue to
a looper. This will also should allow native apps to be
written without the need for a separate thread, by attaching
the event queue to the main thread's looper and scheduling
their own messages there.

Change-Id: I38489282635895ae2cbfacb88599c1b1cad9b239
nputTransport.h
e12e3d7692cf370b8cbdb848da5201bfa0410afb 01-Jul-2010 Dianne Hackborn <hackbod@google.com> Merge "Introduce official public NativeWindow type." into gingerbread
4b5e91e4820f03dba7dcc36e4b148331bc964b4b 30-Jun-2010 Dianne Hackborn <hackbod@google.com> Introduce official public NativeWindow type.

Not yet hooked up to anything in the NDK, but requires renaming
the existing android_native_window_t type everywhere.

Change-Id: Iffee6ea39c93b8b34e20fb69e4d2c7c837e5ea2e
ramebufferNativeWindow.h
gl/android_natives.h
c393eb6cf5f5685d4dc1ddaa04136475536acccf 30-Jun-2010 Jeff Brown <jeffbrown@google.com> Fix injection of specially intercepted keys like HOME.

This change mainly unwinds a premature optimization in the
dispatch pipeline.
To test HOME injection, run 'adb shell input keyevent 3'.

Change-Id: I1c4b7377c205da7c898014b8b07fc6dc1d46e4dd
nput.h
nputReader.h
189ed23c1002054fdc06893e99d34a3617f24108 30-Jun-2010 Dianne Hackborn <hackbod@google.com> Implement default key handling for native code.

The native code now maintains a list of all keys that may use
default handling. If the app finishes one of these keys
without handling it, the key will be passed back off to Java
for default treatment.

Change-Id: I6a842a0d728eeafa4de7142fae573f8c11099e18
nput.h
nputTransport.h
4036f7f2b44351a8d964b5cdfdf7b787795cf041 30-Jun-2010 Jeff Brown <jeffbrown@google.com> Fix native input dispatch in the emulator.

Set a default orientation of ROTATION_0.
Added some more careful checks based on whether we have valid
absolute axis information from the driver.
Reset key repeating during configuration changes since the keyboard
device may have been removed.

Change-Id: I685960828acffcb17595fc5683309e8064a76714
nputReader.h
9c7f8186aea675628894b8f3844f83e791870859 29-Jun-2010 Dianne Hackborn <hackbod@google.com> Update native activity & event APIs to follow correct conventions.

Change-Id: Ie64fb3a9c68bc9c117fa5621b75d1f609e304e0e
nput.h
nputTransport.h
50de30a5230dd15326f8bcbb4beaf617bca265e2 22-Jun-2010 Jeff Brown <jeffbrown@google.com> Native input event dispatching.

Target identification is now fully native.
Fixed a couple of minor issues related to input injection.
Native input enabled by default, can be disabled by setting
WindowManagerPolicy.ENABLE_NATIVE_INPUT_DISPATCH to false.

Change-Id: I7edf66ed3e987cc9306ad4743ac57a116af452ff
nput.h
nputDispatcher.h
nputManager.h
nputReader.h
af997c49621558dc697247040b47c3bc10ca7094 22-Jun-2010 Jens Gulin <jens.gulin@sonyericsson.com> Keep track of remaining fd when devices are removed

Sometimes the wrong fd was accessed when the device was addressed
by device id.

The earlier implementation assumed that two arrays were in sync
but one of them was compacted when devices were removed. Instead
of that dependency the device now keeps track of it's file descriptor.

Change-Id: I2b8a793d76b89ab464ae830482b309fe86031671
ventHub.h
4d96bb6ae38466a04acfbcce61cb202786239927 19-Jun-2010 Dianne Hackborn <hackbod@google.com> First stab at attaching native event dispatching.

Provides the basic infrastructure for a
NativeActivity's native code to get an object representing
its event stream that can be used to read input events.

Still work to do, probably some API changes, and reasonable
default key handling (so that for example back will still
work).

Change-Id: I6db891bc35dc9683181d7708eaed552b955a077e
nput.h
nputTransport.h
51d45a710eff6da1749ae66ce9cab218144c388b 18-Jun-2010 Jeff Brown <jeffbrown@google.com> More native input event dispatching.

Added ANRs handling.
Added event injection.
Fixed a NPE ActivityManagerServer writing ANRs to the drop box.
Fixed HOME key interception.
Fixed trackball reporting.
Fixed pointer rotation in landscape mode.

Change-Id: I50340f559f22899ab924e220a78119ffc79469b7
nput.h
nputDispatcher.h
nputManager.h
f4a4ec2063dfd28e04bbfe712f67acee4bdc8e37 16-Jun-2010 Jeff Brown <jeffbrown@google.com> Even more native input dispatch work in progress.

Added more tests.
Fixed a regression in Vector.
Fixed bugs in pointer tracking.
Fixed a starvation issue in PollLoop when setting or removing callbacks.
Fixed a couple of policy nits.

Modified the internal representation of MotionEvent to be more
efficient and more consistent.

Added code to skip/cancel virtual key processing when there are multiple
pointers down. This helps to better disambiguate virtual key presses
from stray touches (such as cheek presses).

Change-Id: I2a7d2cce0195afb9125b23378baa94fd2fc6671c
nput.h
nputTransport.h
54bc281639e5ff6955d7a86104f6f21624941aca 15-Jun-2010 Jeff Brown <jeffbrown@google.com> More work in progress on native events.

Refactored the code to eliminate potential deadlocks due to re-entrant
calls from the policy into the dispatcher. Also added some plumbing
that will be used to notify the framework about ANRs.

Change-Id: Iba7a10de0cb3c56cd7520d6ce716db52fdcc94ff
nput.h
nputDispatchPolicy.h
nputDispatcher.h
nputManager.h
nputReader.h
e839a589bf582568cf220c1040ed93b948e6e362 23-Apr-2010 Jeff Brown <jeffbrown@google.com> Native input dispatch rewrite work in progress.

The old dispatch mechanism has been left in place and continues to
be used by default for now. To enable native input dispatch,
edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.

Includes part of the new input event NDK API. Some details TBD.

To wire up input dispatch, as the ViewRoot adds a window to the
window session it receives an InputChannel object as an output
argument. The InputChannel encapsulates the file descriptors for a
shared memory region and two pipe end-points. The ViewRoot then
provides the InputChannel to the InputQueue. Behind the
scenes, InputQueue simply attaches handlers to the native PollLoop object
that underlies the MessageQueue. This way MessageQueue doesn't need
to know anything about input dispatch per-se, it just exposes (in native
code) a PollLoop that other components can use to monitor file descriptor
state changes.

There can be zero or more targets for any given input event. Each
input target is specified by its input channel and some parameters
including flags, an X/Y coordinate offset, and the dispatch timeout.
An input target can request either synchronous dispatch (for foreground apps)
or asynchronous dispatch (fire-and-forget for wallpapers and "outside"
targets). Currently, finding the appropriate input targets for an event
requires a call back into the WindowManagerServer from native code.
In the future this will be refactored to avoid most of these callbacks
except as required to handle pending focus transitions.

End-to-end event dispatch mostly works!

To do: event injection, rate limiting, ANRs, testing, optimization, etc.

Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25
ventHub.h
nput.h
nputDispatchPolicy.h
nputDispatcher.h
nputManager.h
nputReader.h
nputTransport.h
b7e930db175c192464cebdeb49eb56cf6dd60114 02-Jun-2010 Mathias Agopian <mathias@google.com> split surface management from surface's buffers management

Change-Id: If3c5655d1231f8f0c49ba68f972b1b20c93b3f87
raphicBuffer.h
a138f89c5e78b7e8994823e97d6e860869762837 22-May-2010 Mathias Agopian <mathias@google.com> added the notion of fixed-size buffers

the new native_window_set_buffers_geometry allows
to specify a size and format for all buffers to be
dequeued. the buffer will be scalled to the window's
size.

Change-Id: I2c378b85c88d29cdd827a5f319d5c704d79ba381
gl/android_natives.h
f10d7fde03218c17251416a34d7b726a43ec528a 21-May-2010 Mathias Agopian <mathias@google.com> added native_window_set_buffer_count()

this method can be used to change the number of buffers
associated to a native window. the default is two.

Change-Id: I608b959e6b29d77f95edb23c31dc9b099a758f2f
gl/android_natives.h
1853b7d7904a78bff1728a9299b64275c1800885 11-May-2010 Jamie Gennis <jgennis@google.com> Merge "Add incStrong and decStrong methods to android_native_{window,buffer}_t." into kraken
5e67f87430d581155c700bb33ac0b43ed5de20b7 11-May-2010 Jamie Gennis <jgennis@google.com> Add incStrong and decStrong methods to android_native_{window,buffer}_t.

This change adds the methods necessary to use sp<> to handle refcounting
android_native_window_t and android_native_buffer_t. The new methods forward
the refcounting operations to the corresponding android_native_base_t
functions.

Change-Id: I7de8e262728e439bc1efdf69374a2a9f6f432ced
ndroid_native_buffer.h
gl/android_natives.h
ad3f4a4561385af969e3e7ff280b59d842c6eb0b 06-May-2010 The Android Open Source Project <initial-contribution@android.com> am f7896449: merge from open-source master

Merge commit 'f78964490d8098387d51444c87bf520ad3f674e2' into kraken

* commit 'f78964490d8098387d51444c87bf520ad3f674e2':
Add new keycodes for the convenience of Japanese IMEs
Call register_localized_collators() with the current locale.
Fixed deserialization problem in DatePicker.
Fix for bug 2467152 files with spaces fail to open.
Set alpha value for newly created dim surface.
telephony: Fix CID when CID is unknown
30f71ce5971b5a129e134b7a1fb8c2e53a50f23f 06-May-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: Ia9e1f4e049f5870386ea29ddb6e3ef028ea918da
ef1c5c314b9baa2360c62a1ebc84c9a2996613ba 02-Oct-2009 mogimo <mogimogio@gmail.com> Add new keycodes for the convenience of Japanese IMEs

Change-Id: Ibd308cef11261147856258595f6ca0137e03e05c
eycodeLabels.h
cc08e688f5b82b4ebd076ad138b2749e8c86ad5e 16-Apr-2010 Mathias Agopian <mathias@google.com> added setCrop() to android_native_window_t

hooked up the new method up to Surface.cpp
the actual crop is not implemented in SF yet

Change-Id: Ic6e313c98fd880f127a051a0ccc71808bd689751
gl/android_natives.h
5629eb167638a9ebfa5059177d227c7ac67db46f 15-Apr-2010 Mathias Agopian <mathias@google.com> when a zero dimension buffer is allocated, turn the allocation into
a 1x1 buffer instead of Nx1 (or 1xN)

Change-Id: I27eeb15e83e13002dd9405f4e52b54f7dffc0fe7
raphicBufferAllocator.h
529973acc25ba41e7d71ed58448ecee793bcc657 08-Apr-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I975030d9572463bc69245bcffa25c47d7acb2b51
e5f56fb1b4fd681e0d9d9b3524c945c8dfe00daa 27-May-2009 Chih-Wei Huang <cwhuang@linux.org.tw> Add keycodes PageUp and PageDown

This is useful for applications like web browser.

Change-Id: Ie9262d5b75de87ecd0971407a7c3ce9aa6e4998e
eycodeLabels.h
c8620b60d67390d2bd0fa0ce53cc63fc18c50244 25-Mar-2010 Mathias Agopian <mathias@google.com> fix [2545826] calling into gralloc with external lock held

Change-Id: I2d0e017382404c684c768a0dd0423d574213f10a
raphicBufferAllocator.h
e156e6478f8393dc519a903d48ef09b3eabf32ad 12-Mar-2010 Mathias Agopian <mathias@google.com> Add a new connect/disconnect API to android_native_window_t

it's used to keep track of which API owns the surface.

Change-Id: I1021c5905c020efc3c428e561b38189377168b22
gl/android_natives.h
98e71ddaede9a0bfb681fd237bec1f66c6c53193 12-Feb-2010 Mathias Agopian <mathias@google.com> remove a dependency of GraphicBuffer (libui) on Parcel (libbinder).

Add a Flattenable interface to libutils which can be used to flatten
an object into bytestream + filedescriptor stream.
Parcel is modified to handle Flattenable. And GraphicBuffer implements
Flattenable.

Except for the overlay classes libui is now independent of libbinder.
raphicBuffer.h
b6121422ef641dc7317d1c3bf1d38b7d73922250 18-Feb-2010 Mathias Agopian <mathias@google.com> Remove a dependency of Region (libui) on Parcel (libbinder).
egion.h
3db21640519541141137166ce55627cf76e1974b 17-Feb-2010 Mathias Agopian <mathias@google.com> fix a bug I introduced recently where YUV formats would crash the system
ixelFormat.h
54ed4f6282bdea251455f39b978626026affdbef 17-Feb-2010 Mathias Agopian <mathias@google.com> get rid off the YUV formats at the libui layer
ixelFormat.h
9cce325fae8adcf7560a28eef394489f09bad74d 10-Feb-2010 Mathias Agopian <mathias@google.com> split libsurfaceflinger_client and libcamera_client out of libui
amera.h
ameraHardwareInterface.h
ameraParameters.h
Camera.h
CameraClient.h
CameraService.h
Surface.h
SurfaceComposer.h
SurfaceFlingerClient.h
urface.h
urfaceComposerClient.h
a05c8227046081b2648b8150c1a716040eb08121 09-Feb-2010 Wu-cheng Li <wuchengli@google.com> Add exposure compensation parameter.

bug:2375993
ameraParameters.h
391f3f8b5e8f97e002cbbc6a7535cfd73a8d16b3 31-Jan-2010 Wu-cheng Li <wuchengli@google.com> Add float support for set and get in CameraParameters.

bug:2375989
bug:2375987
ameraParameters.h
077c40fee35f483df961c6a0746ee78b9d1c5a8f 27-Jan-2010 Wu-cheng Li <wuchengli@google.com> Add focal length and view angle API.

bug:2375989,2375987
ameraParameters.h
f091e833d339d344fbc4815bcc87ce97d8535cd8 23-Jan-2010 Chih-Chung Chang <chihchung@google.com> Add support for setting camera display orientation.
amera.h
ameraParameters.h
88eeff5270991df178ee09ffda7ce5076c9a1e59 25-Jan-2010 Wu-cheng Li <wuchengli@google.com> Change key to KEY_SUPPORTED_JPEG_THUMBNAIL_SIZES for consistency.

bug:2375986
ameraParameters.h
5994a330ac949e7706540f22cd73d76d9f2a96cb 23-Jan-2010 Chih-Chung Chang <chihchung@google.com> Add support for 180/270 degrees rotation.
Surface.h
52e7200b6e020bba978c36e3a928493a3f2c8a92 22-Jan-2010 Chih-Chung Chang <chihchung@google.com> Add an orientation parameter for overlay, so we can do camera preview in portrait mode.
Surface.h
963abad79ae64dae9bf4c32bfb110d9e6314c857 14-Nov-2009 Mathias Agopian <mathias@google.com> fix some aspects of [2258746] native crash in launcher2

Surface::validate() could sometimes dereference a null pointer before checking it wasn't null.
This will prevent the application to crash when given bad parameters or used incorrectly.
However, the bug above probably has another cause.
urface.h
6fee064809068fe1a7da63d55678d9a222b0be15 03-Nov-2009 Mathias Agopian <mathias@google.com> fix[2228133] pixelflinger ignores the "vertical stride" leading to artifacts when playing back video

we lost the concept of vertical stride when moving video playback to EGLImage.
Here we bring it back in a somewhat hacky-way that will work only for the
softgl/mdp backend.
raphicBuffer.h
986e0dcf7ad2bbf0ec717430cd4e84ee82a3c6ea 23-Oct-2009 Wu-cheng Li <wuchengli@google.com> Use image rect information to display zoomed picture.
ameraHardwareInterface.h
54ba51dff21de666c5ae3bf3abd4f0634ebb0676 27-Oct-2009 Mathias Agopian <mathias@google.com> fix [2143798] Need to figure out how to do video

Use EGLImageKHR instead of copybit directly.
We now have the basis to use streaming YUV textures (well, in fact
we already are). When/if we use the GPU instead of the MDP we'll
need to make sure it supports the appropriate YUV format.

Also make sure we compile if EGL_ANDROID_image_native_buffer is not supported
raphicBuffer.h
e700501d0e888ead9ac6456c0a6fd74d634aa5fb 08-Oct-2009 Mathias Agopian <mathias@google.com> fix [2170319] gmail bulk operation checkbox latency on passion

This also fixes [2152536] ANR in browser

When SF is enqueuing buffers faster than SF dequeues them.
The update flag in SF is not counted and under some situations SF will only
dequeue the first buffer. The state at this point is not technically
corrupted, it's valid, but just delayed by one buffer.

In the case of the Browser ANR, because the last enqueued buffer was delayed
the resizing of the current buffer couldn't happen.

The system would always fall back onto its feet if anything -else- in
tried to draw, because the "late" buffer would be picked up then.
urfaceComposerClient.h
3330b203039dea366d4981db1408a460134b2d2c 06-Oct-2009 Mathias Agopian <mathias@google.com> fix [2167050] glTexImage2D code path buggy in SurfaceFlinger

When EGLImage extension is not available, SurfaceFlinger will fallback to using
glTexImage2D and glTexSubImage2D instead, which requires 50% more memory and an
extra copy. However this code path has never been exercised and had some bugs
which this patch fix.

Mainly the scale factor wasn't computed right when falling back on glDrawElements.
We also fallback to this mode of operation if a buffer doesn't have the adequate
usage bits for EGLImage usage.

This changes only code that is currently not executed. Some refactoring was needed to
keep the change clean. This doesn't change anything functionaly.
ufferMapper.h
raphicBuffer.h
raphicBufferAllocator.h
raphicBufferMapper.h
Surface.h
urface.h
ndroid_native_buffer.h
e6a550d02ff02f465d7dbb6e862671462866f024 29-Sep-2009 Wu-cheng Li <wuchengli@google.com> Add zoom functions and sendCommand.

b2060030
amera.h
ameraHardwareInterface.h
Camera.h
eb16a09f59022f9fd3f1d633204049bc4e96b0f9 28-Sep-2009 Wu-cheng Li <wuchengli@google.com> Change FLASH_MODE_VIDEO_LIGHT to FLASH_MODE_TORCH.
ameraParameters.h
cc6ce203be6784130c73e6f253981c7236cdcb68 23-Sep-2009 Wu-cheng Li <wuchengli@google.com> Add camera parameter key constants and documentation.
ameraParameters.h
dd3423c6247965bf67ea30c75e484a6f5d72b1a2 24-Sep-2009 Mathias Agopian <mathias@google.com> fix [2132563] stuck in boot animation (framebuffer_device_open: Failed to create flip chain)
urfaceComposerClient.h
74faca212e2675aa55a30235c77cb6403471a4b9 18-Sep-2009 Mathias Agopian <mathias@google.com> Android side of the fix for [2121211] Sholes has stutter during animations

a new method, compostionComplete() is added to the framebuffer hal, it is used by surfaceflinger to signal the driver that the composition is complete, BEFORE it releases its client. This gives a chance to the driver to
ramebufferNativeWindow.h
68a6afeb26002961387573dd64dd0ea3816bdc91 16-Sep-2009 Mathias Agopian <mathias@google.com> fix [2122448] android_native_window_t::setUsage() only reallocates the first buffer

Take 2. We needed to check that the usage flags are "good enough" as opposed to "the same".

This reverts commit 8f17a762fe9e9f31e4e86cb60ff2bfb6b10fdee6.
urface.h
3910f5467a344c54b3c39c45b820c184e31b449c 16-Sep-2009 Mathias Agopian <mathias@google.com> Revert "fix [2122448] android_native_window_t::setUsage() only reallocates the first buffer"

This reverts commit 486aa963b63e20b7910e1004cebb4f0afabbd80f.
urface.h
d18afab9d6a89d14c5c583a7d976665af4765a6b 16-Sep-2009 Mathias Agopian <mathias@google.com> fix [2122448] android_native_window_t::setUsage() only reallocates the first buffer
urface.h
00900eb35473530a5fc77f7bd3ac306b6dcf19cb 15-Sep-2009 Chih-Chung Chang <chihchung@google.com> Fix 2083478: Camera needs an auto-focus cancel API

Change-Id: I13bda991b32aee47e82b5cf9d43b3021c416a9a2
amera.h
ameraHardwareInterface.h
Camera.h
cbb288bfe89f585bf48371bd31b2d4aafa32f32e 08-Sep-2009 Mathias Agopian <mathias@google.com> fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly

Rewrote SurfaceFlinger's buffer management from the ground-up.
The design now support an arbitrary number of buffers per surface, however the current implementation is limited to four. Currently only 2 buffers are used in practice.

The main new feature is to be able to dequeue all buffers at once (very important when there are only two).

A client can dequeue all buffers until there are none available, it can lock all buffers except the last one that is used for composition. The client will block then, until a new buffer is enqueued.

The current implementation requires that buffers are locked in the same order they are dequeued and enqueued in the same order they are locked. Only one buffer can be locked at a time.

eg. Allowed sequence: DQ, DQ, LOCK, Q, LOCK, Q
eg. Forbidden sequence: DQ, DQ, LOCK, LOCK, Q, Q
Surface.h
urface.h
urfaceComposerClient.h
1c97d2ebe1f035beabd90089bfc78326b73d7864 20-Aug-2009 Mathias Agopian <mathias@google.com> fix a bug that caused the PixelFormat viewed by Surface to be wrong.

what happened is that the efective pixel format is calculated by SF but Surface nevew had access to it directly.
in particular this caused query(FORMAT) to return the requested format instead of the effective format.
SurfaceFlingerClient.h
37b2a3744c2045cbf15a50dc1312fdd8c67ae8b1 17-Aug-2009 Mathias Agopian <mathias@google.com> really be more friendly with C
gl/android_natives.h
ba5972ffdc7179dd9a387f22032eb18666d97917 15-Aug-2009 Mathias Agopian <mathias@google.com> make sure to update a surface's usage bits when it changes, instead of only the first time.

also fixed a few locking issues in Surface and commented how each member is protected.
urface.h
238a66e67b155d7e1fcdb19b672ffc0ae4a6fc94 14-Aug-2009 Mathias Agopian <mathias@google.com> be more friendly with C
gl/android_natives.h
ccde199f7ce916e42a45b5a50e937d9c17904da2 14-Aug-2009 Mathias Agopian <mathias@google.com> Surface::GPU and Surface::HARDWARE are now deprecated; they will be set automatically if needed.

this also ripples into the window manager API by making some constant there deprecated as well.
SurfaceComposer.h
fae3e73b6157555e8605f8b0c1d5b0bcc5b5ea00 14-Aug-2009 Dima Zavin <dima@android.com> ui: make native_window_set_usage be a static inline

Signed-off-by: Dima Zavin <dima@android.com>
gl/android_natives.h
4c8fb0a184e51c3f561fff26ba84ceb5ec75be24 12-Aug-2009 Benny Wong <Benny.Wong@motorola.com> Modified the camera HAL interface to use the same generic callback architecture as camera services
amera.h
ameraHardwareInterface.h
5221271375f361b84a6eeec3d7086f223997fbb3 12-Aug-2009 Mathias Agopian <mathias@google.com> second take, hopefully this time it doesn't break one of the builds: "SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything."
ramebufferNativeWindow.h
Surface.h
urface.h
gl/android_natives.h
b2fd4665e66fe81969f1f07fd724c6f68dd8f7f1 12-Aug-2009 Fred Quintana <fredq@google.com> Revert "SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything."

This reverts commit 8b76a0ac6fbf07254629ed1ea86af014d5abe050.
ramebufferNativeWindow.h
Surface.h
urface.h
gl/android_natives.h
df37b62c62f8efd3b5a433f9b4d40d30cec13a31 11-Aug-2009 Mathias Agopian <mathias@google.com> SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything.

This change makes SurfaceHolder.setType(GPU) obsolete (it's now ignored).
Added an API to android_native_window_t to allow extending the functionality without ever breaking binary compatibility. This is used to implement the new set_usage() API. This API needs to be called by software renderers because the default is to use usage flags suitable for h/w.
ramebufferNativeWindow.h
Surface.h
urface.h
gl/android_natives.h
e186431c33fa332b585e37f6b5ef5efd39b359cf 07-Aug-2009 Andreas Huber <andih@google.com> Expose a variation of the createRenderer API that works on a plain Surface.
urface.h
8c12c7aec3fdbccfa8161c2c12131d590a9b5ce8 08-Aug-2009 Mathias Agopian <mathias@google.com> added EGLUtils::strerror
GLUtils.h
b2001065b957bf0db2577c0877c4751097d627af 07-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge changes 20345,20346,20347

* changes:
update most gl tests to use EGLUtils
added two EGL helpers for selecting a config matching a certain pixelformat or native window type
added NATIVE_WINDOW_FORMAT attribute to android_native_window_t
6cf50a770dabd13cf5b72bb0a6fb9dd002c88db6 07-Aug-2009 Mathias Agopian <mathias@google.com> added two EGL helpers for selecting a config matching a certain pixelformat or native window type
GLUtils.h
6b1f41004fa48e96bab61f508867314261de660b 07-Aug-2009 Mathias Agopian <mathias@google.com> added NATIVE_WINDOW_FORMAT attribute to android_native_window_t
gl/android_natives.h
34193b31681dcbadf0a629879ca004f561b1b149 06-Aug-2009 Iliyan Malchev <malchev@google.com> EventHub: pass the name of each input device up to Java

Signed-off-by: Iliyan Malchev <malchev@google.com>
ventHub.h
c591736c66cbd4320fc96573fda28bec2b4d4100 04-Aug-2009 Dianne Hackborn <hackbod@google.com> Finish implementation of multiple pointer support for MotionEvent.

The major things going on here:

- The MotionEvent API is now extended to included "pointer ID" information, for
applications to keep track of individual fingers as they move up and down.
PointerLocation has been updated to take advantage of this.

- The input system now has logic to generate MotionEvents with the new ID
information, synthesizing an identifier as new points are down and trying to
keep pointer ids consistent across events by looking at the distance between
the last and next set of pointers.

- We now support the new multitouch driver protocol, and will use that instead
of the old one if it is available. We do NOT use any finger id information
coming from the driver, but always synthesize pointer ids in user space.
(This is simply because we don't yet have a driver reporting this information
from which to base an implementation on.)

- Increase maximum number of fingers to 10. This code has only been used
with a driver that reports up to 2, so no idea how more will actually work.

- Oh and the input system can now detect and report physical DPAD devices.
ventHub.h
764d4ab4561b8556c06f2ae7c56b7e983a5cf0b7 31-Jul-2009 Andreas Huber <andih@google.com> The IOMX interface now instantiates IOMXRenderers to hide the details of hardware accelerated blitting.
urface.h
fa170f513338322102a200de7d1fd696e51d55c8 31-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 9287

* changes:
fixed some issues with the software renderer when surfaces are made current.
cb6b9041647b4f080324742eee5ce709960ff610 31-Jul-2009 Mathias Agopian <mathias@google.com> fixed some issues with the software renderer when surfaces are made current.

there was several issues:
- when a surface was made non-current, the last frame wasn't shown and the buffer could stay locked
- when a surface was made current the 2nd time, it would not dequeue a new buffer

now, queue/dequeue are done when the surface is made current.

for this to work, a new query() hook had to be added on android_native_window_t, it allows to retrieve some attributes of a window (currently only width and height).
ramebufferNativeWindow.h
urface.h
gl/android_natives.h
e56271109fe59e1c1f4958bdcdeb9a3a7f53eb28 25-Jul-2009 Benny Wong <Benny.Wong@motorola.com> Adding resizeInput and setAttributes for overlay
verlay.h
811fdfd9b7863ee4e6300500b9159d11878e1664 20-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 5892

* changes:
Hardware overlay support
71f771570e1b5341048a6fbf82a7c57d885bd850 16-Jul-2009 Benny Wong <Benny.Wong@motorola.com> Hardware overlay support

Enable hardware overlay support for camera and video playback use cases
verlay.h
b441106276a9c5fcd47642aff8cda2a2039481c0 16-Jul-2009 Mike Lockwood <lockwood@android.com> EventHub: Add support for excluding devices from being opened by as a keyboard.

This will be used to avoid unnecessarily listening to data from sensors
that function as event devices.

Signed-off-by: Mike Lockwood <lockwood@android.com>
ventHub.h
c968c3a9c782eaf44a5772cd388e5c690e5be4f3 14-Jul-2009 Dianne Hackborn <hackbod@google.com> Implement virtual button support.

The kernel can now publish a property describing the layout of virtual
hardware buttons on the touchscreen. These outside of the display
area (outside of the absolute x and y controller range the driver
reports), and when the user presses on them a key event will be
generated rather than a touch event.

This also includes a number of tweaks to the absolute controller
processing to make things work better on the new screens. For
example, we now reject down events outside of the display area.

Still left to be done is the ability to cancel a key down event,
so the user can slide up from the virtual keys to the touch screen
without causing a virtual key to execute.
ventHub.h
9f1234e4600d343710635973f3296da7b39cd9a2 09-Jul-2009 Dave Sparks <davidsparks@android.com> resolved conflicts for merge of 04c7d0f8 to master
f72d640b7c7de40b4c5d83b69748535e4254c941 09-Jul-2009 Dave Sparks <davidsparks@android.com> Add timestamps to video frames to improve A/V sync.
Bug 1927069.
amera.h
ameraHardwareInterface.h
CameraClient.h
0f7f88db2771ec6b08df1354f1d85290f93227d5 06-Jul-2009 Mathias Agopian <mathias@google.com> Merge commit 'goog/master' into merge_master
4361996a8c4a398d818da4ea453595a0a3404358 06-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am c7396025: Merge change 6084 into donut

Merge commit 'c7396025e59524e7ef639fd86fc23123939ee91c'

* commit 'c7396025e59524e7ef639fd86fc23123939ee91c':
Return CAMERA_ERROR_SERVER_DIED to camera app when camera service dies (bug 1956726)
7303c6bf1a8b00a0e7d8165d774a1f259b4ccda9 03-Jul-2009 Mathias Agopian <mathias@google.com> get rid of references to MemoryDealer in SurfaceFlinger
SurfaceComposer.h
SurfaceFlingerClient.h
urfaceComposerClient.h
16f3d35459a03bf7fad41df0a0d192d2c50a0594 02-Jul-2009 James Dong <jdong@google.com> Return CAMERA_ERROR_SERVER_DIED to camera app when camera service dies (bug 1956726)
amera.h
84d1f7a09827fe195dd08b647b8c5092d03516f7 02-Jul-2009 Mathias Agopian <mathias@google.com> Merge commit 'goog/master' into merge_master
9f96145725ff3f265712d607d19078fb91a5c8ec 30-Jun-2009 Mathias Agopian <mathias@google.com> Region::makeBoundsSelf() efficiently turns a region to its bounds
egion.h
ff10113dd45b6a8cb32ccaf36b2bc768c06ff26a 30-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am 17a80081: Merge change 5544 into donut

Merge commit '17a80081a42410f541a220ab7e6afc64fc6cc399'

* commit '17a80081a42410f541a220ab7e6afc64fc6cc399':
Pipe all the camera callbacks to Java to facilitate the addition
17b2ad027b4b72b96dfb663c0ea001972da7ef58 27-Jun-2009 Mathias Agopian <mathias@google.com> return bounds Rect by value
egion.h
c06b7cb6f35989580dff68ebc7edabc0352aa556 26-Jun-2009 Dave Sparks <davidsparks@android.com> Pipe all the camera callbacks to Java to facilitate the addition
of new features. This will make it easy to add things like zoom
callbacks without modifying the entire camera stack.
Bug 1837832.
amera.h
2ab55a4e31c37d74abdd85486e1f4045c7f708e2 25-Jun-2009 Mathias Agopian <mathias@google.com> make use of new eglGetRenderBufferANDROID extension to clean-up a bit a few hacks added recently
ramebufferNativeWindow.h
69029eb5abfaeb52716b84db89e32dc742551508 24-Jun-2009 Mathias Agopian <mathias@google.com> hack copybit back in for video playback on msm7k. we have h/w accelerated video again
ramebufferNativeWindow.h
4c4b387afb2e775fcac3b81a249bb7646515dffa 25-Jun-2009 Mathias Agopian <mathias@google.com> merge master in master_gl
aa8d188de37e262c1e705981d6fedc990b6dc100 25-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am a93466f5: Merge change 5220 into donut

Merge commit 'a93466f5ca41c2ba6c3524c8d1edc2138bf753e3'

* commit 'a93466f5ca41c2ba6c3524c8d1edc2138bf753e3':
Cleanup header file. Disallow copy of Camera object by making copy
de5b60b06254748e4593d6095277da45e44acf80 24-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am eaa89f74: Merge change 5172 into donut

Merge commit 'eaa89f74c04c0f10d5f3f8190b457087537bff2e'

* commit 'eaa89f74c04c0f10d5f3f8190b457087537bff2e':
Remove deprecated callback function support.
e193f7cd9eded002b5a74b8823be704c020be536 24-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am 3d7b8d1a: Merge change 5158 into donut

Merge commit '3d7b8d1aa6a362292f56defbe8fb2d5653f79282'

* commit '3d7b8d1aa6a362292f56defbe8fb2d5653f79282':
Use a ref-counted callback interface for Camera.
f5a8faa751cc55c8474ce17d407c9933ad0efdeb 24-Jun-2009 Dave Sparks <davidsparks@android.com> Cleanup header file. Disallow copy of Camera object by making copy
constructor and operator= private.
amera.h
dc76f7bfa10a037ea0cc0f253022d8de7eefc691 24-Jun-2009 Dave Sparks <davidsparks@android.com> Remove deprecated callback function support.
This is the last of a 3-part change to modify the camera to use
a more streamlined callback interface. This change removes the
old code.
Bug 1884362
amera.h
bbbc7cb77efba3dd46e9d13fc22e81cff17c35d2 24-Jun-2009 Dave Sparks <davidsparks@android.com> Use a ref-counted callback interface for Camera.
This allows the camera service to hang onto the callback interface
until all callbacks have been processed. This prevents problems
where pending callbacks in binder worker threads are processed
after the Java camera object and its associated native resources
have been released.
Bug 1884362
amera.h
3d57964a81cd631d80aa9575647e1ce35b5e82d5 05-Jun-2009 Mathias Agopian <mathias@google.com> fix a bunch of problems with destroying surfaces.

now, all destruction path, go through the purgatory which is emptied when ~ISurface is called, but we also make sure to remove the surface from the current list from there (in case a client forgot to request the destruction explicitely).
SurfaceComposer.h
6457359fa5df7869d5881acee80b34dfc760a5bf 01-Jun-2009 Mathias Agopian <mathias@google.com> Merge commit 'goog/master' into merge_master
e0c322049ab2be291c1fc40f79702543d4e77934 01-Jun-2009 Mathias Agopian <mathias@google.com> get rid of utils.h
ventHub.h
bed9dd128dfbdc7d9dbca005078536dadc0b9359 28-May-2009 Mathias Agopian <mathias@google.com> make sure the Region code disallows constructs like "(a+b)=c;", which is somewhat meaningless.
egion.h
4b8160fdfd3281d1d66c0cae9bb9c647b4333491 28-May-2009 Mathias Agopian <mathias@google.com> oops forgot these changes in the previous merge. fixes build
ect.h
723ec00af46d1f95d69fe5af53e0a5d09f01a7d6 27-May-2009 Mathias Agopian <mathias@google.com> Merge commit 'goog/master' into merge_master

Conflicts:
include/ui/Rect.h
libs/ui/ISurfaceComposer.cpp
2787dddcd0a814aa4a90b9e8cc72c9c258c94854 27-May-2009 Android (Google) Code Review <android-gerrit@google.com> am 0c0ad39c: Merge change 2502 into donut

Merge commit '0c0ad39cd8eaa6de6b7f99cec3971bcc953461e0'

* commit '0c0ad39cd8eaa6de6b7f99cec3971bcc953461e0':
minor clean-up to Rect and Point.
35801cea5f301c0e1d7a93b15a8f73f98e6b1033 27-May-2009 Mathias Agopian <mathias@google.com> minor clean-up to Rect and Point.

- return "const" objects for overloaded operators to disallow constructs like: (a+b) = c;
- don't return references to non-static members, it's not always safe.
- Point.cpp was empty, so get rid of it
oint.h
ect.h
310f8da0c3122ed5419db8f12a6e98d3188325b2 22-May-2009 Mathias Agopian <mathias@google.com> merge master to master_gl
c5b2c0bf8007562536b822eb060fc54a01f8e08b 20-May-2009 Mathias Agopian <mathias@google.com> move libbinder's header files under includes/binder
ameraHardwareInterface.h
Camera.h
CameraClient.h
CameraService.h
Overlay.h
Surface.h
SurfaceComposer.h
SurfaceFlingerClient.h
verlay.h
egion.h
20f68782a4ea71c6a977d7f87d8288d3daa265ec 11-May-2009 Mathias Agopian <mathias@google.com> Region now has its own implementation instead of relying on SkRegion, which allows us to break libui's dependency on libcorecg.
ect.h
egion.h
d717598616910b5454b56429dec3bfad2757bd52 15-May-2009 Mathias Agopian <mathias@google.com> Merge commit 'goog/master' into merge_master

Conflicts:
opengl/libagl/Android.mk
opengl/libs/Android.mk
opengl/libs/egl_impl.h
93b94584edb1c59037319d9bbf84881ccff9f66a 08-May-2009 Dave Sparks <davidsparks@android.com> Modify camera framework to use new streamlined binder interface.
This is the second half of bug 1837832. Modifies the camera client
and camera service to use the new binder interface. Removes the
old binder interface. There will be one more part to this change
to surface the undefined callbacks to the Java layer so that
partners can implement new features without having to touch the
stack.
amera.h
CameraClient.h
5958661507b39cd59e68e9bc2b54399af92847c4 08-May-2009 Mathias Agopian <mathias@google.com> Merge commit 'goog/master' into merge_master
1e16b13857809eaa9bd17fb60ac0a471dc92844b 08-May-2009 Mathias Agopian <mathias@google.com> add support for update-on-demand in SurfaceFlinger
ramebufferNativeWindow.h
9b35233ea511eab24aa15de5dc2e94b6f8ed081d 07-May-2009 Dave Sparks <davidsparks@android.com> Add new binder methods to camera client to support generic callbacks
This is the first step in a multi-step change to move from the old
specific callbacks to a generic callback. This will allow future
flexibility in the interface without requiring binder rewrites.
Bug 1837832
amera.h
CameraClient.h
aa8c0ff7a36b4840dcf3e72c9696b86d192c4314 06-May-2009 Mathias Agopian <mathias@google.com> get rid off unneeded flags
gl/android_natives.h
58a79f47457e9cae2f6880653b581fe3170b0b1f 06-May-2009 Mathias Agopian <mathias@google.com> move android_native_buffer_t declaration into its own private/ui/android_native_priv.h header, since user code should never have access to it.
gl/android_natives.h
7189c0054e29a66d945f5657c48d5ecf538ea511 06-May-2009 Mathias Agopian <mathias@google.com> move opengl/include/EGL/android_natives.h to include/ui/egl/android_natives.h and don't include it from egl.h

the android_native_ types are just forward declared in egl.h
ramebufferNativeWindow.h
Surface.h
urface.h
gl/android_natives.h
21c59d0070fe24a8e04e52ce04d511a924a9932f 05-May-2009 Mathias Agopian <mathias@google.com> get rid of android_native_buffer_t::getHandle() and replace it with an handle field

this abstraction was not necessary. things are easier now.
ramebufferNativeWindow.h
urface.h
e71212ba5397387100a578d23b15862518a7a859 05-May-2009 Mathias Agopian <mathias@google.com> removed the "bits" attribute from android_native_buffer_t.

"bits" can never be trusted now that we need to call lock() on the handle to get the virtual address of the buffer.
urface.h
b2dd686d06a608ee40285b93bc0217cf26c2b035 05-May-2009 Mathias Agopian <mathias@google.com> minor clean-up in FramebufferNativeWindow
ramebufferNativeWindow.h
0926f50664c739eaee60341f8e8c694dc9a4f3eb 04-May-2009 Mathias Agopian <mathias@google.com> update surfaceflinger, libui and libagl to the new gralloc api

- Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually.
- factor all the lock/unlock code in SurfaceBuffer.
- fixed "showupdate" so it works even when we don't have preserving eglSwapBuffers().
- improved the situation with the dirty-region and fixed a problem that caused GL apps to not update.
- make use of LightRefBase() where needed, instead of duplicating its implementation
- add LightRefBase::getStrongCount()
- renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp

- disabled copybits test, since it clashes with the new gralloc api

- Camera/Video will be fixed later when we rework the overlay apis
ufferMapper.h
GLDisplaySurface.h
GLNativeWindowSurface.h
ramebufferNativeWindow.h
egion.h
urface.h
7be3e5d2d8101a8f5e12bbdf650431a734f88eba 30-Apr-2009 Mathias Agopian <mathias@google.com> Merge commit 'goog/master' into merge_master

Conflicts:
libs/surfaceflinger/Layer.cpp
libs/surfaceflinger/SurfaceFlinger.cpp
opengl/libagl/egl.cpp
opengl/libs/EGL/egl.cpp
opengl/libs/GLES_CM/gl.cpp
opengl/libs/GLES_CM/gl_api.in
opengl/libs/gl_entries.in
opengl/libs/tools/glapigen
d2dc9ac87bbdbbe465a0a07b63843282fb28eee7 27-Apr-2009 James Dong <jdong@google.com> Bug fix(1807910): media recorder crash due to the use of locked camera object (last part)
- remove an unused Camera constructor
- add a check on the argument in Camera::create() method
amera.h
f1a5314076248a352915ae1a987725ae76cc8a22 23-Apr-2009 James Dong <jdong@google.com> Fix a media server crash (bug 1807910): part one
Add a factory method that creates a Camera object from a remote client

Next:
The changes in authordriver.cpp and android_camera_input.cpp will come.
and the constructor for Camera object will be removed.
amera.h
18d8446fe1596cd50561777e1d1a8c7b39c689f6 17-Apr-2009 Mathias Agopian <mathias@google.com> cleanup, remove unused fields. Also make sure that we don't systematically allocate a Surface in Surface.java if only a SurfaceControl is needed (Common case).
urface.h
01b766839e06c32540cef100e3a7710d12cf1eef 17-Apr-2009 Mathias Agopian <mathias@google.com> more splitting of Surface/SurfaceControl. Surface.java is now implemented in terms of Surface and SurfaceControl.

The WindowManager side of Surface.java holds a SurfaceControl, while the client-side holds a Surface. When the client is in the system process, Surface.java holds both (which is a problem we'll try to fix later).
urface.h
urfaceComposerClient.h
62185b7335e85211dc4d0e2003354eb3ea2e66ef 17-Apr-2009 Mathias Agopian <mathias@google.com> split Surface.cpp into Surface and SurfaceControl

SurfaceControl is used for controling the geometry of the surface (for the WM), while Surface is used to access the buffers (for SF's clients).
SurfaceFlingerClient now uses the SurfaceID instead of Surface*.

Currently Surface still has the SurfaceControl API and is implemented by calling into SurfaceControl.
urface.h
urfaceComposerClient.h
40b7f6e0433b89c27b2fe5a1c0c47f67b42eceb2 15-Apr-2009 Mathias Agopian <mathias@google.com> fix some issues with Surface's lifetime management.

To deal with Java's lack of destructors and delayed garbage collection, we used to duplicate Surface.cpp objects in some case; this caused some issues because Surface is supposed to be reference-counted and unique.
urface.h
4243e666213029a293935987c979831093fb0779 16-Apr-2009 Mathias Agopian <mathias@google.com> fix a rookie mistake causing Singleton<> to be a "multiton". Also improve the BufferMapper's debugging, but turn it off.

Squashed commit of the following:

commit 04e9cae7f806bd65f2cfe35c011b47a36773bbe5
Author: Mathias Agopian <mathias@google.com>
Date: Wed Apr 15 18:30:30 2009 -0700

fix and improve BufferMapper's tracking of mapped buffers.

commit 1a8deaed15811092b2349cc3c40cafb5f722046c
Author: Mathias Agopian <mathias@google.com>
Date: Wed Apr 15 00:52:02 2009 -0700

fix some bugs with the Singleton<> class. untested.

commit ed01cc06ad70cf640ce1258f01189cb1a96fd3a8
Author: Mathias Agopian <mathias@google.com>
Date: Tue Apr 14 19:29:25 2009 -0700

some work to debug the Singleton<> template.
ufferMapper.h
83d184a299dd80911169a89e352dc3b33b9650fc 14-Apr-2009 Mathias Agopian <mathias@google.com> Merge commit 'goog/master' into merge_master
2f6d8816871519a88cb0ed3bf4861e153f5031e0 14-Apr-2009 Dianne Hackborn <> AI 145994: Integrate #145778 from Donut.

Automated import of CL 145994
eycodeLabels.h
8b765b7f5ea7f56963ea0e3141d043d20944dbcc 11-Apr-2009 Mathias Agopian <mathias@google.com> more debugging tools around BufferMapper
ufferMapper.h
bc0caf802e5eb08b6565bbe3a535cb2fca826d8b 11-Apr-2009 Andy Stadler <> AI 145778: Manual merge changes 145382-145384 from cupcake.

Automated import of CL 145778
eycodeLabels.h
076b1cc3a9b90aa5b381a1ed268ca0b548444c9b 10-Apr-2009 Mathias Agopian <mathias@google.com> Integrate from //sandbox/mathias/donut/...@145728

SurfaceFlinger rework for new EGL driver model support.
ufferMapper.h
GLNativeWindowSurface.h
Surface.h
SurfaceComposer.h
SurfaceFlingerClient.h
ixelFormat.h
urface.h
urfaceComposerClient.h
c08731e756868653d09d3e49b723706df3687070 28-Mar-2009 Mathias Agopian <> AI 143320: am: CL 143171 am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor
Original author: mathias
Merged from: //branches/cupcake/...
Original author: android-build
Merged from: //branches/donutburger/...

Automated import of CL 143320
SurfaceComposer.h
urfaceComposerClient.h
24fd77d44088011c88c55a5de459e75792bb2ecb 28-Mar-2009 Mathias Agopian <> AI 143171: am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor
Original author: mathias
Merged from: //branches/cupcake/...

Automated import of CL 143171
SurfaceComposer.h
urfaceComposerClient.h
9adf84a4b6735354893ff1e57c129f66d97d75ee 05-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@136594
CameraService.h
edbf3b6af777b721cd2a1ef461947e51e88241e1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
amera.h
ameraHardwareInterface.h
ameraParameters.h
isplayInfo.h
GLDisplaySurface.h
GLNativeSurface.h
GLNativeWindowSurface.h
ventHub.h
Camera.h
CameraClient.h
CameraService.h
Overlay.h
Surface.h
SurfaceComposer.h
SurfaceFlingerClient.h
eyCharacterMap.h
eycodeLabels.h
verlay.h
ixelFormat.h
oint.h
ect.h
egion.h
urface.h
urfaceComposerClient.h
d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
amera.h
ameraHardwareInterface.h
ameraParameters.h
isplayInfo.h
GLDisplaySurface.h
GLNativeSurface.h
GLNativeWindowSurface.h
ventHub.h
Camera.h
CameraClient.h
CameraService.h
Overlay.h
Surface.h
SurfaceComposer.h
SurfaceFlingerClient.h
eyCharacterMap.h
eycodeLabels.h
verlay.h
ixelFormat.h
oint.h
ect.h
egion.h
urface.h
urfaceComposerClient.h
43aa2b1cbf7a03e248e10f4d0fec0463257cd52d 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
ameraHardwareInterface.h
0bb03408de8886e8d17013219967d42fb9c8cf8c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
ameraHardwareInterface.h
7222586f99599fb2de31293277b79e8d4a3acdc2 20-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132569
eycodeLabels.h
ac65e0b172b33f7e068c14e3d95678fa20205577 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
Surface.h
a6938bab1f6fa76ae98ebbe44f4e534e05fa0993 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
amera.h
ameraHardwareInterface.h
ameraParameters.h
GLDisplaySurface.h
GLNativeSurface.h
GLNativeWindowSurface.h
ventHub.h
Camera.h
CameraClient.h
Surface.h
verlay.h
ixelFormat.h
5f78a48bb8f7714ee231fca67d60fad77bc1cad9 20-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127101
verlay.h
8a7a67538a9977c892389bfcde76a8372aa0b56c 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
ventHub.h
verlay.h
urface.h
urfaceComposerClient.h
276293246ea9cbc0a578a7697cc48930376ec0e9 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
amera.h
ameraHardwareInterface.h
GLNativeSurface.h
Camera.h
Overlay.h
Surface.h
verlay.h
ixelFormat.h
egion.h
e09fd9e819c23dc90bca68375645e15544861330 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
litHardware.h
amera.h
ameraHardwareInterface.h
GLDisplaySurface.h
Camera.h
Overlay.h
Surface.h
SurfaceFlingerClient.h
eycodeLabels.h
verlay.h
ixelFormat.h
egion.h
urface.h
7c1b96a165f970a09ed239bb4fb3f1b0d8f2a407 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
litHardware.h
amera.h
ameraHardwareInterface.h
ameraParameters.h
isplayInfo.h
GLDisplaySurface.h
GLNativeSurface.h
GLNativeWindowSurface.h
ventHub.h
Camera.h
CameraClient.h
CameraService.h
Surface.h
SurfaceComposer.h
SurfaceFlingerClient.h
eyCharacterMap.h
eycodeLabels.h
ixelFormat.h
oint.h
ect.h
egion.h
urface.h
urfaceComposerClient.h