summaryrefslogtreecommitdiffstats
path: root/libs/surfaceflinger/SurfaceFlinger.h
Commit message (Collapse)AuthorAgeFilesLines
* split libsurfaceflinger_client and libcamera_client out of libuiMathias Agopian2010-02-111-5/+2
|
* Add support for physically rotated displaysMathias Agopian2010-02-081-3/+7
| | | | | | | | | | | | | This feature is currently controled by a system property. "ro.sf.hwrotation" can be set to either 90 or 270. It'll cause SF to rotate the screen by 90 and 270 degres respectively. That is, if the driver reports 800x480 for instance, and ro.sf.hwrotation is set to 90, applications will "see" a 480x800 display and will run in portrait. This is implemented by introducing an extra "display" transformation in the GraphicPlane.
* fix [2297155] SurfaceFlinger's freeze-timeout doesn't workMathias Agopian2009-12-011-1/+5
| | | | | | | | | There was bug in the logic that calculated the relative timeout, the start time was reset each time an event was received, which caused the timeout to never occur if an application was constantly redrawing. Now we always check for a timeout when we come back from the waitEvent() and process the "anti-freeze" if needed, regardless of whether an event was received.
* DO NOT MERGE: Another gcc 4.0.3 workaround.Andy McFadden2009-10-301-0/+2
| | | | | | | Temporarily make a function public that doesn't need to be. When host gcc-4.0.3 is gone from the build servers we can undo this. (Cherry-picked from eclair-mr2.)
* fix [2167050] glTexImage2D code path buggy in SurfaceFlingerMathias Agopian2009-10-061-1/+2
| | | | | | | | | | | | | | 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 [2133214] STOPSHIP: revert I4a06bb4f: workaround for [2113743] Sholes: ↵Mathias Agopian2009-09-231-1/+0
| | | | | | | | frozen then runtime restart going to list view Revert "workaround for [2113743] Sholes: frozen then runtime restart going to list view" This reverts commit 4a06bb4f3355b0ef2b76aa883704da9d154c44ae.
* Work around gcc 4.0.3 bug.Andy McFadden2009-09-211-0/+2
| | | | | | | | | | This appears to fix the sim-eng build on the gDapper build machines. Basic problem is that LayerBuffer::OverlaySource has a constructor that calls SurfaceFlinger.signalEvent(). SurfaceFlinger lists LayerBuffer as a friend, but that's not enough to convince gcc that the embedded OverlaySource class is also a friend. I don't see a way to make them friendly, so I marked signalEvent() as public.
* workaround for [2113743] Sholes: frozen then runtime restart going to list viewMathias Agopian2009-09-201-0/+1
|
* fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properlyMathias Agopian2009-09-071-6/+3
| | | | | | | | | | | | | | | 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
* dumpsys SurfaceFlinger will now always dump SF's state, even if SF is deadlockedMathias Agopian2009-08-261-0/+4
| | | | | | | | (in this case the state is dumped without the proper locks held which could result to a crash) in addition, the last transaction and swap times are printed to the dump as well as the time spent *currently* in these function. For instance, if SF is unresponsive because eglSwapBuffers() is stuck, this will show up here.
* fix a bug that caused the PixelFormat viewed by Surface to be wrong.Mathias Agopian2009-08-191-2/+2
| | | | | 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.
* resolved conflicts for merge of ac38dfc5 to masterMathias Agopian2009-07-281-0/+1
|\
| * fix [2017532] Partial Update leaves residual image.Mathias Agopian2009-07-281-0/+1
| |
* | trying to fix the sim, I'm not even sure this syntaxe is valid, but my ↵Mathias Agopian2009-07-061-0/+1
| | | | | | | | compilo doesn't complain
* | get rid of references to MemoryDealer in SurfaceFlingerMathias Agopian2009-07-021-12/+16
| |
* | free gralloc buffers as soon as possible (when a surface is not visible any ↵Mathias Agopian2009-07-021-2/+0
| | | | | | | | longer), client who have the buffers still mapped won't crash, btu may see garbage data
* | fix a memory corruption where a SF Client could be used after it's been ↵Mathias Agopian2009-06-191-10/+10
| | | | | | | | destroyed
* | implement dimming with a texture on msm7k so it uses copybitMathias Agopian2009-06-181-0/+1
| |
* | new Permission class used to improve permission checks speed (by caching ↵Mathias Agopian2009-06-151-1/+6
| | | | | | | | results)
* | fix a bunch of problems with destroying surfaces.Mathias Agopian2009-06-041-0/+3
| | | | | | | | 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).
* | merge master to master_glMathias Agopian2009-05-221-4/+1
|\ \
| * \ am 69a6c3eb: Merge change 2292 into donutAndroid (Google) Code Review2009-05-211-3/+0
| |\ \ | | |/ | | | | | | | | | | | | | | | Merge commit '69a6c3ebd46a8de0e896747757f364322c12608d' * commit '69a6c3ebd46a8de0e896747757f364322c12608d': split boot animation out of SurfaceFlinger
| | * split boot animation out of SurfaceFlingerMathias Agopian2009-05-211-3/+0
| | | | | | | | | | | | | | | | | | Conflicts: data/etc/platform.xml
| | * AI 143171: am: CL 142873 fix [1732012] Only show screen rotation animation ↵Mathias Agopian2009-03-271-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | when triggered by sensor Original author: mathias Merged from: //branches/cupcake/... Automated import of CL 143171
| | * AI 143160: am: CL 142856 new-new-new-new rotation animation. it may still ↵Mathias Agopian2009-03-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | change one more time. Original author: mathias Merged from: //branches/cupcake/... Automated import of CL 143160
| | * Automated import from //branches/donutburger/...@142446,142446Mathias Agopian2009-03-241-2/+0
| | |
| | * Automated import from //branches/donutburger/...@141502,141502Mathias Agopian2009-03-241-0/+2
| | |
| * | move libbinder's header files under includes/binderMathias Agopian2009-05-201-1/+1
| | |
* | | update surfaceflinger, libui and libagl to the new gralloc apiMathias Agopian2009-05-041-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* | | get rid of the "show fps" debug optionMathias Agopian2009-04-241-1/+0
| | |
* | | a brand new MessageQueue for SurfaceFlinger.Mathias Agopian2009-04-241-22/+7
| | |
* | | more Surface lifetime managementMathias Agopian2009-04-241-1/+5
| | | | | | | | | | | | | | | Surfaces are now destroyed once all references from the clients are gone, but they go through a partial destruction as soon as the window manager requests it. This last part is still buggy. see comments in SurfaceFlinger::destroySurface()
* | | more splitting of Surface/SurfaceControl. Surface.java is now implemented in ↵Mathias Agopian2009-04-161-7/+0
| | | | | | | | | | | | | | | | | | 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).
* | | Integrate from //sandbox/mathias/donut/...@145728Mathias Agopian2009-04-101-57/+41
|/ / | | | | | | 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-1/+2
| | | | | | | | | | | | | | | | | | | | | | 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
* | AI 143309: am: CL 143160 am: CL 142856 new-new-new-new rotation animation. ↵Mathias Agopian2009-03-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | it may still change one more time. Original author: mathias Merged from: //branches/cupcake/... Original author: android-build Merged from: //branches/donutburger/... Automated import of CL 143309
* | Automated import from //branches/master/...@142447,142447Mathias Agopian2009-03-241-2/+0
| |
* | Automated import from //branches/master/...@141504,141504Mathias Agopian2009-03-241-0/+2
|/
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+435
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-435/+0
|
* auto import from //branches/cupcake/...@131421The Android Open Source Project2009-02-131-2/+2
|
* auto import from //branches/cupcake/...@130745The Android Open Source Project2009-02-101-5/+14
|
* auto import from //branches/cupcake/...@125939The Android Open Source Project2009-01-091-11/+3
|
* Code drop from //branches/cupcake/...@124589The Android Open Source Project2008-12-171-4/+5
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+433