summaryrefslogtreecommitdiff
path: root/libs/surfaceflinger/LayerBitmap.cpp
AgeCommit message (Collapse)Author
2009-09-07fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly Mathias Agopian
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
2009-08-19fix [2063336] Surface.lockSurface throws IllegalArgumentException when out ↵ Mathias Agopian
of memory
2009-08-11second take, hopefully this time it doesn't break one of the builds: ↵ Mathias Agopian
"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."
2009-08-11Revert "SurfaceFlinger will now allocate buffers based on the usage ↵ Fred Quintana
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.
2009-08-11SurfaceFlinger will now allocate buffers based on the usage specified by the ↵ Mathias Agopian
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.
2009-08-03free surface buffers before trying to allocate new ones, so we have more ↵ Mathias Agopian
chance of success
2009-07-28fix [1985856] Seg fault when using the soft keyboard in the Messaging app Mathias Agopian
2009-07-02get rid of references to MemoryDealer in SurfaceFlinger Mathias Agopian
2009-07-02free gralloc buffers as soon as possible (when a surface is not visible any ↵ Mathias Agopian
longer), client who have the buffers still mapped won't crash, btu may see garbage data
2009-05-22merge master to master_gl Mathias Agopian
2009-05-20move libbinder's header files under includes/binder Mathias Agopian
2009-05-05removed the "bits" attribute from android_native_buffer_t. Mathias Agopian
"bits" can never be trusted now that we need to call lock() on the handle to get the virtual address of the buffer.
2009-05-04update surfaceflinger, libui and libagl to the new gralloc api Mathias Agopian
- 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
2009-04-10Integrate from //sandbox/mathias/donut/...@145728 Mathias Agopian
SurfaceFlinger rework for new EGL driver model support.
2009-03-03auto import from //depot/cupcake/@135843 The Android Open Source Project
2009-03-03auto import from //depot/cupcake/@135843 The Android Open Source Project
2009-02-10auto import from //branches/cupcake/...@130745 The Android Open Source Project
2008-10-21Initial Contribution The Android Open Source Project