a3cc7edfce45aec6c31b7a7193a53491246bfbb4 |
01-Mar-2014 |
Ying Wang <wangying@google.com> |
Fix misuse of $(my-dir). Change-Id: I8b24f60826abe4b541de646cbc3df66929203301
ndroid.mk
|
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
ndroid.mk
at_test.cpp
ec_test.cpp
|
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
ndroid.mk
egion_test.cpp
egion/Android.mk
egion/region.cpp
|
4f4c10104e8fbeed5dfeefb542e0bc5392daf9a5 |
21-Feb-2012 |
Mathias Agopian <mathias@google.com> |
frameworks/base refactoring create the new libandroidfw from parts of libui and libutils Change-Id: I1584995616fff5d527a2aba63921b682a6194d58
ndroid.mk
nputChannel_test.cpp
nputEvent_test.cpp
nputPublisherAndConsumer_test.cpp
|
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
nputChannel_test.cpp
nputEvent_test.cpp
nputPublisherAndConsumer_test.cpp
|
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
nputChannel_test.cpp
nputPublisherAndConsumer_test.cpp
|
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
nputChannel_test.cpp
nputPublisherAndConsumer_test.cpp
|
9d4536835248525f32f1504a3d28d5bbfa0a2910 |
20-Dec-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
egion/region.cpp
|
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
nputEvent_test.cpp
|
0a1fdd7d508a472b6c348a3ab6a9f180eb95b31f |
28-Jul-2011 |
Ying Wang <wangying@google.com> |
Fix uses of all-subdir-makefiles We should use all-makefiles-under instead. all-subdir-makefiles can be used only before any "include" statement. Before this change, both subdirs were actually not included. Change-Id: I6bf35d07f294a5012c9322096f999ac26e37432f
ndroid.mk
|
baa44b89ec159fd65230cbb8ebab62d63a513b0b |
12-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Remove the simulator target from all makefiles. Bug: 5010576 Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
ndroid.mk
|
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
nputEvent_test.cpp
nputPublisherAndConsumer_test.cpp
|
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
nputEvent_test.cpp
|
b2d4435dfa44531ee6025563571cfd77cd1b4f97 |
17-Feb-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix a regression with MotionEvent parceling. Also added some more unit tests. Change-Id: I413654294d1a998eec056884e6df5eaa50f3daf4
ndroid.mk
nputChannel_test.cpp
nputEvent_test.cpp
nputPublisherAndConsumer_test.cpp
|
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
nputPublisherAndConsumer_test.cpp
|
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
ndroid.mk
nputDispatcher_test.cpp
nputReader_test.cpp
|
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
nputReader_test.cpp
|
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_test.cpp
nputPublisherAndConsumer_test.cpp
nputReader_test.cpp
|
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
nputReader_test.cpp
|
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
nputDispatcher_test.cpp
|
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
nputReader_test.cpp
|
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_test.cpp
nputPublisherAndConsumer_test.cpp
|
d4ecee931322b9832b729f2fcbaed21c35edd3bf |
30-Oct-2010 |
Jeff Brown <jeffbrown@google.com> |
Rename the locked meta key constants for clarity. Also added some tests for LED setting. Change-Id: I3fd86322afd07ae8de52d1ccbc2fae2c6d586641
nputReader_test.cpp
|
5e871b47ef9b252e24a9acdedd79b90dfbf65529 |
25-Oct-2010 |
Jeff Brown <jeffbrown@google.com> |
Add test stubs for newly added methods. Change-Id: I44139adebbbed1358f613fbcbfcddac6617ef5bd
nputReader_test.cpp
|
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
ndroid.mk
nputDispatcher_test.cpp
nputReader_test.cpp
|
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
nputPublisherAndConsumer_test.cpp
|
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
nputPublisherAndConsumer_test.cpp
|
a50ee3ecb377c69758254a0af9542bb64ecc5b71 |
15-Jul-2010 |
Jeff Brown <jeffbrown@google.com> |
Don't build framework tests for simulator target. Change-Id: I70f29c7eb307e4f3ec5702f4eb9d97b4342e2f36
ndroid.mk
|
8575a87b0d61d21c286321afdf193f4fac53d681 |
01-Jul-2010 |
Jeff Brown <jeffbrown@google.com> |
Add initial gamepad support. Change-Id: I0439648f6eb5405f200e4223c915eb3a418b32b9
nputPublisherAndConsumer_test.cpp
|
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
ndroid.mk
nputChannel_test.cpp
nputDispatcher_test.cpp
nputPublisherAndConsumer_test.cpp
|
f69280ef72f1adfcdb7bfef001e4935344c410c0 |
15-Jun-2010 |
Jeff Brown <jeffbrown@google.com> |
Support for multiple tests The build system enforces some invariants that were being ignored before. Change-Id: Ie7675042af7f961a507386c13b2a0b592b591af8
ndroid.mk
|
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
ndroid.mk
nputDispatcher_test.cpp
egion.cpp
egion/Android.mk
egion/region.cpp
|
38a7fa2ae37236952e5fb0186fddb4f6da5990d8 |
16-Oct-2009 |
Mathias Agopian <mathias@google.com> |
fix [2182249] [MR1] valgrind error in surface flinger
egion.cpp
|
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.
ndroid.mk
egion.cpp
|