summaryrefslogtreecommitdiffstats
path: root/libs/gui/Android.mk
Commit message (Collapse)AuthorAgeFilesLines
* BufferQueue: Add StreamSplitterDan Stoza2014-04-151-0/+1
| | | | | | | | | Adds a StreamSplitter class, that takes one IGraphicBufferConsumer interface and multiple IGraphicBufferProducer interfaces and implements a one-to-many broadcast of GraphicBuffers (while managing fences correctly). Change-Id: I38ecdf3e311ac521bc781c30dde0cc382a4376a3
* BufferQueue: Add producer buffer-released callbackDan Stoza2014-03-311-0/+1
| | | | | | | | | | | | | | | | | Add a callback to the producer side, onBufferReleased, which will be called every time the consumer releases a buffer back to the BufferQueue. This will enable a buffer stream splitter to work autonomously without having to block on dequeueBuffer. The binder object used for the callback replaces the generic IBinder token that was passed into IGraphicBufferProducer::connect to detect the death of the producer. If a producer does not wish to listen for buffer release events, it can pass in an instance of the DummyProducerListener class defined in IProducerListener.h, if it even cares about death events (BufferQueue doesn't enforce the token being non-NULL, though perhaps we should). Change-Id: I23935760673524abeafea2b58dccc3583b368710
* Split BufferQueue into core + producer + consumerDan Stoza2014-03-041-0/+5
| | | | Change-Id: Idc39f1e511d68ce4f02202d35425a419bc0bcd92
* Binderize the consumer side of BufferQueueMathias Agopian2013-08-011-0/+2
| | | | | | | | | | While currently untested, this should allow to move the BuffereQueue in the consumer process and have everything work as usual. Bug: 9265647 Change-Id: I9ca8f099f7c65b9a27b7e7a3643b46d1b58eacfc
* BufferQueue improvements and APIs changesMathias Agopian2013-07-181-1/+0
| | | | | | | | | | | | | | | | | | | | this is the first step of a series of improvements to BufferQueue. A few things happen in this change: - setSynchronousMode() goes away as well as the SynchronousModeAllowed flag - BufferQueue now defaults to (what used to be) synchronous mode - a new "controlled by app" flag is passed when creating consumers and producers those flags are used to put the BufferQueue in a mode where it will never block if both flags are set. This is achieved by: - returning an error from dequeueBuffer() if it would block - making sure a buffer is always available by replacing the previous buffer with the new one in queueBuffer() (note: this is similar to what asynchrnous mode used to be) Note: in this change EGL's swap-interval 0 is broken; this will be fixed in another change. Change-Id: I691f9507d6e2e158287e3039f2a79a4d4434211d
* Add liblogYing Wang2013-04-091-0/+1
| | | | | Bug: 8580410 Change-Id: I2ca4fa00dde0b574df3619134836bcb9315bd506
* don't use compile-time configuration of libgui as much as possibleMathias Agopian2013-03-291-16/+5
| | | | | | | | | | | | | | | | | | | We now detect at runtime which sync features to use, which allows us to remove a lot of the compile-time configuration options. There is still one option though, to disable KHR_fence_sync on some devices (which are more efficient without it). - added a backdoor to get the vendor's EGL strings the new logic is: - use always ANDROID_native_fence_sync if available - fallback to KHR_fence_sync if available and not disabled by the compile-time option - use KHR_wait_sync if available and either of the above is enabled Change-Id: I9c4b49d9ff1151faf902cc93bd53ea5f205aaabf
* get rid of ISurfaceMathias Agopian2013-03-121-1/+0
| | | | | | | | | | | | ISurface was only used to get the IGraphicBufferProducer from a Layer. It's now replaced by a BBinder subclass / IBinder and is only used as a handle to the surface, to both refer to it and manage its life-time. Also cleaned-up a bit the ISurfaceComposer interface and "create layer" code path. Change-Id: I68d0e02d57b862cffb31d5168c3bc10cea0906eb
* Refactoring: Rename SurfaceTextureClient to SurfaceMathias Agopian2013-02-141-1/+1
| | | | Change-Id: Ibed34175ae273608393aaa5f0a7df207dc40d709
* Rename ISurfaceTexture and SurfaceTextureAndy McFadden2012-12-181-2/+2
| | | | | | | | | | The C++ class names don't match what the classes do, so rename ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to GLConsumer. Bug 7736700 Change-Id: Ia03e468888025b5cae3c0ee1995434515dbea387
* SurfaceFlinger: Move GraphicBufferAlloc to libguiJamie Gennis2012-12-111-11/+12
| | | | | | This change moves the GraphicBufferAlloc class from SurfaceFlinger to libgui. Change-Id: Idf31d2004efa2651b60590733f73c4a7b831e8a9
* libgui: enable fence support for exynos5Jamie Gennis2012-10-031-1/+2
| | | | | Change-Id: Iffc48412b8c951116a956a3ac7dab8d75eed13da Bug: 7238122
* libgui: fix up compile optionsJamie Gennis2012-10-031-4/+0
| | | | | | | | | This change adds debug info to SurfaceFlinger's dumpsys to indicate that the USE_WAIT_SYNC compile option was enabled, and it removes the ALLOW_DEQUEUE_CURRENT_BUFFER option. Bug: 7238122 Change-Id: I70e08e34c2ef58aa6d2f88229e781a119f84b5a9
* Show build config in dumpsys SurfaceFlingerAndy McFadden2012-09-251-1/+2
| | | | | | | | | | | | | This adds a line to the "dumpsys SurfaceFlinger" output that shows build-time configuration values. Example: Build configuration: [sf HAS_CONTEXT_PRIORITY] [libui] \ [libgui USE_FENCE_SYNC] Bug 7206633 Change-Id: Ibe1856b459d34a4be6ee83a4ebfd2807e6cc68a0
* gui: conditionally set USE_NATIVE_FENCE_SYNC for msm8960Jeff Boody2012-09-181-0/+4
| | | | | Change-Id: Ib7ad11597ef7c79162a0b0a49a1b8ae16d192c10 Signed-off-by: Iliyan Malchev <malchev@google.com>
* Add BufferItemConsumer, a simple BufferQueue consumer.Eino-Ville Talvala2012-08-211-1/+2
| | | | | | | | | | | | | | BufferItemConsumer allows for acquiring BufferQueue's BufferItems, which contain all the data and metadata the BufferQueue has for a given graphics buffer. This consumer is useful when direct access to the native buffer_handles is needed by the client. Also includes a minor cleanup of CpuConsumer's use of 'virtual'. Bug: 6243944 Change-Id: If7dc4192b15ac499555f1eda42a85140f2434795
* surfaceflinger: refactor FrambufferSurfaceJamie Gennis2012-08-061-0/+1
| | | | | | | | This change refactors the FramebufferSurface class to inherit from the new ConsumerBase class. Bug: 6620200 Change-Id: I46ec942ddb019658e3c5e79465548b171b2261f2
* remove unneeded dependencies in libhardwareMathias Agopian2012-08-041-2/+0
| | | | Change-Id: Ibb8d698d594216d0746b0e7270cf87d7e5acab2b
* libgui: enable EGL_fence_sync usage for exynos5Jamie Gennis2012-07-311-0/+3
| | | | | Bug: 6876502 Change-Id: I2ec2800881dcba9e4f6ff32ffa1341a2de01f0a2
* Transfer HWC release fences to BufferQueueJesse Hall2012-06-211-4/+5
| | | | | | | | | | | | | | | | | | After a HWC set, each SurfaceFlinger Layer retrieves the release fence HWC returned and gives it to the layer's SurfaceTexture. The SurfaceTexture accumulates the fences into a merged fence until the next updateTexImage, then passes the merged fence to the BufferQueue in releaseBuffer. In a follow-on change, BufferQueue will return the fence along with the buffer slot in dequeueBuffer. For now, dequeueBuffer waits for the fence to signal before returning. The releaseFence default value for BufferQueue::releaseBuffer() is temporary to avoid transient build breaks with a multi-project checkin. It'll disappear in the next change. Change-Id: Iaa9a0d5775235585d9cbf453d3a64623d08013d9
* am 138a8d75: am e1082496: Enable SurfaceTexture fence sync for the emulatorJesse Hall2012-05-221-0/+4
|\ | | | | | | | | * commit '138a8d7510e6ba8a402ffacc38c7cc5bfaa5e571': Enable SurfaceTexture fence sync for the emulator
| * Enable SurfaceTexture fence sync for the emulatorJesse Hall2012-05-221-0/+4
| | | | | | | | | | | | | | | | The host-accelerated GL ES driver doesn't do the implicit synchronization required when fence sync isn't used. Bug: 6515813 Change-Id: I6a667f2db6b519f3557b5abda78775f767841dae
* | Add a BufferQueue CPU consumer.Eino-Ville Talvala2012-05-141-1/+2
|/ | | | | | | | | | | Aimed for use cases where gralloc buffers need to be consumed by CPU users, such as camera image data streams. The CpuConsumer is a synchronous queue, which exposes raw pointers to the underlying graphics buffers to applications. Multiple buffers may be acquired at once, up to the limit set at time of construction. Change-Id: If1d99f12471438e95a69696e40685948778055fd
* Added a DummyConsumer for use with BufferQueue.Daniel Lam2012-03-261-0/+1
| | | | | | | | | | The DummyConsumer is a consumer that can connect to BufferQueue that does nothing. It is required as BufferQueue checks if a consumer is connected. Also fixes a bug where SurfaceTexture was reusing old texture slots. Bug: 6172739 Change-Id: I5e7a118dd4d07807ba4c763200242b5ee7d3412b
* Refactored ISurfaceTexture calls from SurfaceTexture into BufferQueue.Daniel Lam2012-02-071-0/+1
| | | | Change-Id: I514f6b802f6b49c9ae27bed37bf0b9d23da03c9a
* SurfaceTexture: use fence sync on omap4 & s5pc110Daniel Lam2012-01-221-0/+7
| | | | | | | This change enables the use of the EGL_KHR_fence_sync extension in SurfaceTexture on omap4 and s5pc110 platforms. Change-Id: Icad5245bab445413ffb8a7c823c296b678bf3250
* Add support for sending VSYNC events to the frameworkMathias Agopian2011-11-291-0/+2
| | | | | | | | | use gui/DisplayEvent to receive the events. Events are dispatched through a unix pipe, so the API is compatible with utils/Looper. see gui/DisplayEvent.h for more info. Bug: 1475048 Change-Id: Ia720f64d1b950328b47b22c6a86042e481d35f09
* Fix build.Mathias Agopian2011-11-291-2/+0
| | | | | | | | Revert "Add support for sending VSYNC events to the framework" This reverts commit f3918c5bd4bc9f02f74da42995564150ca2dd382. Change-Id: I998e3e1aa3fa310829ae973b64fe11b01f6f468f
* Add support for sending VSYNC events to the frameworkMathias Agopian2011-11-291-0/+2
| | | | | | | | | use gui/DisplayEvent to receive the events. Events are dispatched through a unix pipe, so the API is compatible with utils/Looper. see gui/DisplayEvent.h for more info. Bug: 1475048 Change-Id: If4126023fc9c067e56087ec7d16a8fd542ce1794
* am 8390cf39: am 8646cd42: Merge "enable ALLOW_DEQUEUE_CURRENT_BUFFER for ↵Mathias Agopian2011-11-211-0/+4
|\ | | | | | | | | | | | | tegra devices" into ics-mr1 * commit '8390cf39f8a4f74f7baa91d23cba06894a3fb9b5': enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices
| * enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devicesMathias Agopian2011-11-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | this flag should be enabled for all targets, but currently some have issues with it, so we're turning it on only for tested targets. this will hopefully resolve some performance issues. Bug: 5553562, 5631630 Change-Id: I54c7a9e2068586898ab13e405d95534669260537
* | am abdade71: am 69c17a11: Merge "Revert "enable ALLOW_DEQUEUE_CURRENT_BUFFER ↵Mathias Agopian2011-11-171-4/+0
|\ \ | |/ | | | | | | | | | | for tegra devices"" into ics-mr1 * commit 'abdade71bc17153696fe2abe281c5a3b0c2e5abe': Revert "enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices"
| * Revert "enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices"Mathias Agopian2011-11-161-4/+0
| | | | | | | | | | | | | | | | This reverts commit e7758be6da85728df6b4215f413660c67c5a9740. Seemed to cause failures un SurfaceTexture. Bug: 5627450
* | am 556a406c: am 3aa684ec: Merge "enable ALLOW_DEQUEUE_CURRENT_BUFFER for ↵Mathias Agopian2011-11-151-0/+4
|\ \ | |/ | | | | | | | | | | tegra devices" into ics-mr1 * commit '556a406cf4dd8a7faa318e0d522d899f8b9da7dc': enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices
| * enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devicesMathias Agopian2011-11-141-0/+4
| | | | | | | | | | | | | | | | | | | | | | this flag should be enabled for all targets, but currently some have issues with it, so we're turning it on only for tested targets. this will hopefully resolve some performance issues. Bug: 5553562 Change-Id: I939992b4cd0debea980dec0127c72be2dff33af8
* | Rename SensorChannel to BitTubeMathias Agopian2011-10-201-1/+1
|/
* Remove the simulator target from all makefiles.Jeff Brown2011-07-111-4/+0
| | | | | | Bug: 5010576 Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
* unify SurfaceTexture and SurfaceMathias Agopian2011-06-131-1/+0
| | | | | | | Add the concept of synchronous dequeueBuffer in SurfaceTexture Implement {Surface|SurfaceTextureClient}::setSwapInterval() Add SurfaceTexture logging fix onFrameAvailable
* libgui: enable tests in the 'tests' build.Jamie Gennis2011-04-261-0/+4
| | | | | | | | This change makes the libgui makefile recurse into the tests directory so that the tests get built by a top-level make when TARGET_BUILD_VARIANT=tests. Change-Id: I6f623cc4b86dfeb00b9d21823316dbd9def23110
* merge libsurfaceflinger_client into libguiMathias Agopian2011-03-251-2/+9
| | | | | | | | | | | | this is the first step in unifying surfacetexture and surface. for this reason the header files were not moved, as most of them will eventually go away. NOTE: currently we keep libsurfaceflinger_client.so as an empty library to workaround prebuilt binaries wrongly linking against it. Change-Id: I130f0de2428e8579033dc41394d093f4e1431a00
* Add the SurfaceTexture C++ implementation.Jamie Gennis2011-01-061-2/+10
| | | | | | | | | | This change adds the C++ implementation of SurfaceTexture and related classes. The goal of this is for a SurfaceTexture to be passed to camera service or Stagefright in place of a Surface to allow camera preview or decoded video frames to be streamed to an OpenGL ES texture that an application can use. Change-Id: I55c83a7017f1ecb81c9c9e3252cbd118b914296c
* first step at implementing the native sensor supportMathias Agopian2010-07-131-0/+25
in this commit: - implemented the C stub - implemented the binder interfaces involved - implemented most of the C++ client side missing: - SensorManager cannot connect to the SensorServer yet (because there is no SensorServer yet) Change-Id: I75010cbeef31c98d6fa62fd5d388dcef87c2636b