android_system_core/include/utils
Mathias Agopian 641b630d2b fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly
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
2013-07-30 13:56:52 -07:00
..
AndroidUnicode.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
ashmem.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
Asset.h Fix issue #2048263: More debugging information 2013-07-30 13:56:52 -07:00
AssetDir.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
AssetManager.h Don't re-parse the framework resources all the time. 2013-07-30 13:56:51 -07:00
Atomic.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
BackupHelpers.h Only report "unknown metadata" once per restore helper 2013-07-30 13:56:51 -07:00
Buffer.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
BufferedTextOutput.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
ByteOrder.h Implement the C++ class to write the backed up file data. 2013-07-30 13:56:50 -07:00
CallStack.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
Debug.h Support for marshalling pointers / intptr_t in Parcel. 2013-07-30 13:56:52 -07:00
Endian.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
Errors.h fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly 2013-07-30 13:56:52 -07:00
FileMap.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
KeyedVector.h fix KeyedVector::replaceValueAt, which wouldn't even compile if used. 2013-07-30 13:56:49 -07:00
List.h Fix sim build. 2013-07-30 13:56:51 -07:00
Log.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
misc.h get rid of utils.h 2013-07-30 13:56:50 -07:00
RefBase.h update surfaceflinger, libui and libagl to the new gralloc api 2013-07-30 13:56:49 -07:00
ResourceTypes.h Fix #2018814: System cannot correctly render assets with "wrap_content" attribute in QVGA 2013-07-30 13:56:51 -07:00
SharedBuffer.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
Singleton.h force explicit instantiation of Singleton<> objects 2013-07-30 13:56:50 -07:00
SortedVector.h improve Vector<> with types that can be trivially moved and remove some unused code. 2013-07-30 13:56:50 -07:00
StopWatch.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
String8.h Add useful functions to String8, which enables users to convert between UTF-8 and UTF-32 2013-07-30 13:56:51 -07:00
String16.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
StringArray.h rename string_array.h to StringArray.h and move the implementation from the header file to a new cpp file. 2013-07-30 13:56:50 -07:00
SystemClock.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
TextOutput.h some work to try to reduce the code size of some native libraries 2013-07-30 13:56:50 -07:00
threads.h add a ctor to Mutex to specify the type, which can be shared. This is used by sf and af an soon will allow some optimization in the kernel for non shared mutexes 2013-07-30 13:56:51 -07:00
Timers.h get rid of sleepForInterval() which didn't seem to be used anywhere in the source tree. Also get rid of ported.h which seem to be used only (possibly) in the sim. moved the implementation there. 2013-07-30 13:56:50 -07:00
TypeHelpers.h improve Vector<> with types that can be trivially moved and remove some unused code. 2013-07-30 13:56:50 -07:00
Vector.h improve Vector<> with types that can be trivially moved and remove some unused code. 2013-07-30 13:56:50 -07:00
VectorImpl.h improve Vector<> with types that can be trivially moved and remove some unused code. 2013-07-30 13:56:50 -07:00
ZipFileCRO.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
ZipFileRO.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
ZipUtils.h auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00