summaryrefslogtreecommitdiffstats
path: root/libs/ui/Android.mk
Commit message (Collapse)AuthorAgeFilesLines
* Add logging of various important graphics eventsMathias Agopian2010-09-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Refactor input reader to support new device types more easily.Jeff Brown2010-07-281-1/+0
| | | | | | | | | | | | | | | | | | | | | | 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
* Add initial gamepad support.Jeff Brown2010-07-131-0/+11
| | | | Change-Id: I0439648f6eb5405f200e4223c915eb3a418b32b9
* Native input dispatch rewrite work in progress.Jeff Brown2010-06-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* split libsurfaceflinger_client and libcamera_client out of libuiMathias Agopian2010-02-111-13/+1
|
* fix [2170319] gmail bulk operation checkbox latency on passionMathias Agopian2009-10-071-2/+1
| | | | | | | | | | | | | | | 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.
* fix [2167050] glTexImage2D code path buggy in SurfaceFlingerMathias Agopian2009-10-061-2/+3
| | | | | | | | | | | | | | 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.
* Fix sim-eng build.Andy McFadden2009-09-091-0/+4
| | | | | | | | | | | | | | Appears to have been broken by: commit 9779b221e999583ff89e0dfc40e56398737adbb3 Author: Mathias Agopian <mathias@google.com> Date: Mon Sep 7 16:32:45 2009 -0700 fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly For some reason we don't like to have "-lpthread" globally -- it's a no-op on device builds, but required for many host tools and all sim binaries -- so adding the use of pthread calls requires adding the library explicitly.
* fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properlyMathias Agopian2009-09-071-0/+2
| | | | | | | | | | | | | | | 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
* added two EGL helpers for selecting a config matching a certain pixelformat ↵Mathias Agopian2009-08-061-0/+2
| | | | or native window type
* Merge commit 'goog/master' into merge_masterMathias Agopian2009-07-011-2/+1
|\
| * am c44989d6: Merge change 5350 into donutAndroid (Google) Code Review2009-06-251-2/+1
| |\ | | | | | | | | | | | | | | | | | | Merge commit 'c44989d6c7bcc761fb37f54fd37aac2070ba8e5e' * commit 'c44989d6c7bcc761fb37f54fd37aac2070ba8e5e': move ui/Time.cpp to core/jni, since this is the only place it is used
| | * move ui/Time.cpp to core/jni, since this is the only place it is usedMathias Agopian2009-06-251-2/+1
| | |
* | | Merge commit 'goog/master' into merge_masterMathias Agopian2009-05-271-1/+0
|\ \ \ | |/ / | | | | | | | | | | | | Conflicts: include/ui/Rect.h libs/ui/ISurfaceComposer.cpp
| * | am 0c0ad39c: Merge change 2502 into donutAndroid (Google) Code Review2009-05-261-1/+0
| |\ \ | | |/ | | | | | | | | | | | | | | | Merge commit '0c0ad39cd8eaa6de6b7f99cec3971bcc953461e0' * commit '0c0ad39cd8eaa6de6b7f99cec3971bcc953461e0': minor clean-up to Rect and Point.
| | * minor clean-up to Rect and Point.Mathias Agopian2009-05-261-1/+0
| | | | | | | | | | | | | | | | | | - 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
* | | merge master to master_glMathias Agopian2009-05-221-0/+1
|\ \ \ | |/ /
| * | checkpoint: split libutils into libutils + libbinderMathias Agopian2009-05-201-0/+1
| |/
* | Region now has its own implementation instead of relying on SkRegion, which ↵Mathias Agopian2009-05-171-1/+0
| | | | | | | | allows us to break libui's dependency on libcorecg.
* | update surfaceflinger, libui and libagl to the new gralloc apiMathias Agopian2009-05-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* | Integrate from //sandbox/mathias/donut/...@145728Mathias Agopian2009-04-101-1/+1
|/ | | | SurfaceFlinger rework for new EGL driver model support.
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+41
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-41/+0
|
* auto import from //branches/cupcake/...@126645The Android Open Source Project2009-01-151-1/+2
|
* Code drop from //branches/cupcake/...@124589The Android Open Source Project2008-12-171-1/+2
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+39