summaryrefslogtreecommitdiffstats
path: root/libs/ui/SurfaceComposerClient.cpp
Commit message (Collapse)AuthorAgeFilesLines
* fix [2170319] gmail bulk operation checkbox latency on passionMathias Agopian2009-10-071-4/+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 [2132563] stuck in boot animation (framebuffer_device_open: Failed to ↵Mathias Agopian2009-09-231-24/+41
| | | | create flip chain)
* fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properlyMathias Agopian2009-09-071-174/+10
| | | | | | | | | | | | | | | 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
* get rid of references to MemoryDealer in SurfaceFlingerMathias Agopian2009-07-021-5/+5
|
* merge master to master_glMathias Agopian2009-05-221-2/+2
|\
| * move libbinder's header files under includes/binderMathias Agopian2009-05-201-4/+4
| |
* | more splitting of Surface/SurfaceControl. Surface.java is now implemented in ↵Mathias Agopian2009-04-161-3/+3
| | | | | | | | | | | | 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).
* | split Surface.cpp into Surface and SurfaceControlMathias Agopian2009-04-161-33/+27
| | | | | | | | | | | | | | 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.
* | Integrate from //sandbox/mathias/donut/...@145728Mathias Agopian2009-04-101-267/+16
|/ | | | SurfaceFlinger rework for new EGL driver model support.
* AI 143320: am: CL 143171 am: CL 142873 fix [1732012] Only show screen ↵Mathias Agopian2009-03-271-2/+3
| | | | | | | | | | | 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
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+1026
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-1026/+0
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+1026