summaryrefslogtreecommitdiffstats
path: root/libs/surfaceflinger/LayerDim.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert "fix [2793164] Spam 2x/second with TOT master in SurfaceFlinger"Andreas Huber2010-06-251-6/+4
| | | | This reverts commit 081bc5c47d8a980e6eafa70ddafcd89981586391.
* fix [2793164] Spam 2x/second with TOT master in SurfaceFlingerMathias Agopian2010-06-241-4/+6
| | | | | | | Make sure to not use GL_TEXTURE_EXTERNAL when it's not supported by the GL. The error was harmless, but annoying. Change-Id: I571a9a9b05d35da51420950a6a6e95629067efd0
* Added support for the GL_TEXTURE_EXTERNAL targetMathias Agopian2010-06-151-0/+3
| | | | | | This will allow us to support YUV surfaces. Change-Id: I2d4da75f1006a5285bdc552695d4caeecccf2183
* clean-up client management.Mathias Agopian2010-06-041-2/+2
| | | | | | | simplified things a lot, the biggest change is that the concept of "ClientID" is now gone, instead we simply use references. Change-Id: Icbc57f80865884aa5f35ad0d0a0db26f19f9f7ce
* more surfaceflinger cleanupsMathias Agopian2010-04-211-3/+0
| | | | | | | get rid of the "fake rtti" code, and use polymorphism instead. also simplify how we log SF's state (using polymorphism) Change-Id: I2bae7c98de4dd207a3e2b00083fa3fde7c467922
* fix [2143798] Need to figure out how to do videoMathias Agopian2009-10-271-4/+3
| | | | | | | | | 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 [2167050] glTexImage2D code path buggy in SurfaceFlingerMathias Agopian2009-10-061-5/+5
| | | | | | | | | | | | | | 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 [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properlyMathias Agopian2009-09-071-0/+1
| | | | | | | | | | | | | | | 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
* second take, hopefully this time it doesn't break one of the builds: ↵Mathias Agopian2009-08-111-3/+2
| | | | "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."
* second take, hopefully this time it doesn't break one of the builds: ↵Mathias Agopian2009-08-111-1/+6
| | | | "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-111-6/+1
| | | | | | 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-111-1/+6
| | | | | | | 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.
* don't use a 1/4th of the screen size texture for the dim layerMathias Agopian2009-06-291-6/+0
| | | | we can't use a texture of 1/4th of the screen for the dim layer, because the mdp internal input resultion is alwyas integers and for very small blits of a couple pixels the scale factor can get way out of range, for instance for a 7 pixels source, the scale factor would be either 7 (7/1) or 3.5 (7/2) instead of 4 (7/1.75). This caused the mdp to fail in some cases and revert to software. we now always use a texture of the actual screen size, so the problem will never happen. This burns 300KB of pmem instead of 21KB. On devices with a larger screen we might want to use a smaller texture and tile it by hand.
* use 1/16 the size (20KB) for the dim texture in the copybit/msm caseMathias Agopian2009-06-251-1/+7
|
* fix a memory corruption where a SF Client could be used after it's been ↵Mathias Agopian2009-06-191-1/+1
| | | | destroyed
* implement dimming with a texture on msm7k so it uses copybitMathias Agopian2009-06-181-5/+91
|
* Region now has its own implementation instead of relying on SkRegion, which ↵Mathias Agopian2009-05-171-4/+5
| | | | allows us to break libui's dependency on libcorecg.
* Integrate from //sandbox/mathias/donut/...@145728Mathias Agopian2009-04-101-51/+15
| | | | SurfaceFlinger rework for new EGL driver model support.
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+113
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-113/+0
|
* Code drop from //branches/cupcake/...@124589The Android Open Source Project2008-12-171-2/+2
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+113