summaryrefslogtreecommitdiffstats
path: root/libs/ui
Commit message (Collapse)AuthorAgeFilesLines
* fix some aspects of [2258746] native crash in launcher2Mathias Agopian2009-11-131-29/+19
| | | | | | 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.
* Revert change incorrectly submitted as part of change #32153.Romain Guy2009-11-051-2/+0
| | | | Change-Id: I31c52beff03c0d038a257fc151eff3b8da60eddc
* Prevent crash in Home when using widgets whose ids collide with Home'sRomain Guy2009-11-051-0/+2
| | | | | | | | | | resources. Bug #2228943. Approved by mcleron, triaged by ryanpc. Change-Id: Idf40f3b09502ae5d0d3b9a6a72c265a2de2ffca2
* fix[2228133] pixelflinger ignores the "vertical stride" leading to artifacts ↵Mathias Agopian2009-11-021-0/+8
| | | | | | | | 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.
* fix [2143798] Need to figure out how to do videoMathias Agopian2009-10-271-5/+23
| | | | | | | | | 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
* fix [2182249] [MR1] valgrind error in surface flingerMathias Agopian2009-10-151-0/+7
|
* fix [2170283] SurfaceFlinger crashes on OOM.Mathias Agopian2009-10-071-0/+2
| | | | | | when running out of memory, a null handle is returned but the error code may not be set. In that case we need to return NO_MEMORY instead of NO_ERROR, so that the calling code won't try to dereference the null pointer.
* fix [2170319] gmail bulk operation checkbox latency on passionMathias Agopian2009-10-074-48/+8
| | | | | | | | | | | | | | | 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 [2152536] ANR in browserMathias Agopian2009-10-062-7/+7
| | | | | | | | | | | | | | | | A window is created and the browser is about to render into it the very first time, at that point it does an IPC to SF to request a new buffer. Meanwhile, the window manager removes that window from the list and the shared memory block it uses is marked as invalid. However, at that point, another window is created and is given the same index (that just go freed), but a different identity and resets the "invalid" bit in the shared block. When we go back to the buffer allocation code, we're stuck because the surface we're allocating for is gone and we don't detect it's invalid because the invalid bit has been reset. It is not sufficient to check for the invalid bit, I should also check that identities match.
* fix [2168531] have software-only gralloc buffer side-step the HALMathias Agopian2009-10-062-10/+170
|
* fix [2167050] glTexImage2D code path buggy in SurfaceFlingerMathias Agopian2009-10-067-164/+373
| | | | | | | | | | | | | | 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.
* Add zoom functions and sendCommand.Wu-cheng Li2009-10-062-0/+30
| | | | b2060030
* Attempt to fix [2152536] ANR in browserMathias Agopian2009-10-022-6/+15
| | | | | | | | | | | The ANR is caused by SurfaceFlinger waiting for buffers of a removed surface to become availlable. When it is removed from the current list, a Surface is marked as NO_INIT, which causes SF to return immediately in the above case. For some reason, the surface here wasn't marked as NO_INIT. This change makes the code more robust by always (irregadless or errors) setting the NO_INIT status in all code paths where a surface is removed from the list. Additionaly added more information in the logs, should this happen again.
* Change FLASH_MODE_VIDEO_LIGHT to FLASH_MODE_TORCH.Wu-cheng Li2009-09-281-1/+1
|
* Add camera parameter key constants and documentation.Wu-cheng Li2009-09-251-21/+118
|
* fix [2132563] stuck in boot animation (framebuffer_device_open: Failed to ↵Mathias Agopian2009-09-231-24/+41
| | | | create flip chain)
* fbDev wasn't initialized of hw_get_module failed, but was then used anyway.Marco Nelissen2009-09-231-8/+10
|
* Android side of the fix for [2121211] Sholes has stutter during animationsMathias Agopian2009-09-171-0/+8
| | | | 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
* add basic time stats for surfaces lock timeMathias Agopian2009-09-171-1/+15
|
* fix [2122448] android_native_window_t::setUsage() only reallocates the first ↵Mathias Agopian2009-09-151-19/+10
| | | | | | | | buffer Take 2. We needed to check that the usage flags are "good enough" as opposed to "the same". This reverts commit 8f17a762fe9e9f31e4e86cb60ff2bfb6b10fdee6.
* Revert "fix [2122448] android_native_window_t::setUsage() only reallocates ↵Mathias Agopian2009-09-151-8/+18
| | | | | | the first buffer" This reverts commit 486aa963b63e20b7910e1004cebb4f0afabbd80f.
* fix [2122448] android_native_window_t::setUsage() only reallocates the first ↵Mathias Agopian2009-09-151-18/+8
| | | | buffer
* Fix 2083478: Camera needs an auto-focus cancel APIChih-Chung Chang2009-09-152-0/+26
| | | | Change-Id: I13bda991b32aee47e82b5cf9d43b3021c416a9a2
* make sure to update the tail pointer when undoing a dequeueMathias Agopian2009-09-141-5/+15
|
* fix [2111536] [FAST BLOCKER] Device is soft rebooted after ending the call ↵Mathias Agopian2009-09-111-3/+22
| | | | through voice dialer
* fix [2112575] stuck on DequeueCondition for a surface that doesn't exist anymoreMathias Agopian2009-09-101-9/+9
| | | | this also fixes part of [2111536] Device is soft rebooted after ending the call through voice dialer
* make sure conditions will return when the status of a surface is not NO_ERRORMathias Agopian2009-09-101-1/+17
|
* 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-076-408/+648
| | | | | | | | | | | | | | | 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
* Work on issue #2079167: Flickering issue across multiple UIDianne Hackborn2009-09-021-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This addresses a few parts of the bug: - There was a small issue in the window manager where we could show a window too early before the transition animation starts, which was introduced by the recent wallpaper work. This was the cause of the flicker when starting the dialer for the first time. - There was a much larger problem that has existing forever where moving an application token to the front or back was not synchronized with the application animation transaction. This was the cause of the flicker when hanging up (now that the in-call screen moves to the back instead of closing and we always have a wallpaper visible). The approach to solving this is to have the window manager go ahead and move the app tokens (it must in order to keep in sync with the activity manager), but to delay the actual window movement: perform the movement to front when the animation starts, and to back when it ends. Actually, when the animation ends, we just go and completely rebuild the window list to ensure it is correct, because there can be ways people can add windows while in this intermediate state where they could end up at the wrong place once we do the delayed movement to the front or back. And it is simply reasuring to know that every time we finish a full app transition, we re-evaluate the world and put everything in its proper place. Also included in this change are a few little tweaks to the input system, to perform better logging, and completely ignore input devices that do not have any of our input classes. There is also a little cleanup of evaluating configuration changes to not do more work than needed when an input devices appears or disappears, and to only log a config change message when the config is truly changing. Change-Id: Ifb2db77f8867435121722a6abeb946ec7c3ea9d3
* EventHub: Fix file descriptor leak.Mike Lockwood2009-08-281-0/+1
| | | | Signed-off-by: Mike Lockwood <lockwood@android.com>
* fix [2070341] [FAST BLOCKER] can't successfully setup erc52Mathias Agopian2009-08-211-2/+12
|
* fix a bug that caused the PixelFormat viewed by Surface to be wrong.Mathias Agopian2009-08-192-3/+10
| | | | | 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.
* fix [2063336] Surface.lockSurface throws IllegalArgumentException when out ↵Mathias Agopian2009-08-191-31/+59
| | | | of memory
* make sure to update a surface's usage bits when it changes, instead of only ↵Mathias Agopian2009-08-141-23/+52
| | | | | | the first time. also fixed a few locking issues in Surface and commented how each member is protected.
* second take, hopefully this time it doesn't break one of the builds: ↵Mathias Agopian2009-08-113-5/+51
| | | | "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."
* Revert "SurfaceFlinger will now allocate buffers based on the usage ↵Fred Quintana2009-08-113-51/+5
| | | | | | 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.
* SurfaceFlinger will now allocate buffers based on the usage specified by the ↵Mathias Agopian2009-08-113-5/+51
| | | | | | | 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.
* added EGLUtils::strerrorMathias Agopian2009-08-071-5/+29
|
* better error handlingMathias Agopian2009-08-062-9/+39
|
* Merge change 20365Android (Google) Code Review2009-08-061-2/+3
|\ | | | | | | | | * changes: oops, EGLConfig of value zero may be valid
| * oops, EGLConfig of value zero may be validMathias Agopian2009-08-061-2/+3
| |
* | Merge changes 20345,20346,20347Android (Google) Code Review2009-08-064-0/+112
|\ \ | |/ | | | | | | | | | | * 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
| * added two EGL helpers for selecting a config matching a certain pixelformat ↵Mathias Agopian2009-08-062-0/+106
| | | | | | | | or native window type
| * added NATIVE_WINDOW_FORMAT attribute to android_native_window_tMathias Agopian2009-08-062-0/+6
| |
* | EventHub: pass the name of each input device up to JavaIliyan Malchev2009-08-061-11/+8
|/ | | | Signed-off-by: Iliyan Malchev <malchev@google.com>
* Merge change 20133Android (Google) Code Review2009-08-051-0/+3
|\ | | | | | | | | * changes: don't crash when SurfaceBuffer::writeToParcel is given a null argument
| * don't crash when SurfaceBuffer::writeToParcel is given a null argumentMathias Agopian2009-08-051-0/+3
| |
* | Finish implementation of multiple pointer support for MotionEvent.Dianne Hackborn2009-08-041-19/+71
|/ | | | | | | | | | | | | | | | | | | | | | | | 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.
* be more robust when errors occur upon EGL surface creation (ie: don't crash)Mathias Agopian2009-07-311-6/+8
|