summaryrefslogtreecommitdiffstats
path: root/include/gui
Commit message (Collapse)AuthorAgeFilesLines
* SurfaceFlinger: add support for secure displaysJamie Gennis2012-10-222-5/+3
| | | | | | | | | This change adds support for displays that are not allowed to display surfaces with the eSecure flag set. All non-virtual displays are considered secure, while virtual displays have their secure-ness specified at creation time. Bug: 7368436 Change-Id: I81ad535d2d1e5a7ff78269017e85b111f0098500
* SurfaceFlinger: add animation transactionsJamie Gennis2012-10-152-1/+5
| | | | | | | | | | This change adds a transaction flag for WindowManager to indicate that a transaction is being used to animate windows around the screen. SurfaceFlinger will not allow more than one of these transactions to be outstanding at a time to prevent the animation "frames" from being dropped. Bug: 7353840 Change-Id: I6488a6e0e1ed13d27356d2203c9dc766dc6b1759
* Add blankDisplay/unblankDisplay to SurfaceComposerClient.Jeff Brown2012-10-081-0/+6
| | | | | Bug: 7309812 Change-Id: Ia401d642094a46c62f0d26c65da1d11341e203a1
* Fix race condition in ConsumerBase::addReleaseFence()Jesse Hall2012-10-051-2/+3
| | | | | | | | | | | This needs the ConsumerBase mutex locked, but wasn't locking it. Two of the four places that called it already held the lock so were fine. Now addReleaseFence() takes the lock itself, and I added addReleaseFenceLocked() for the two already-locked callers, since in one of them dropping the lock would be inconvenient. Bug: 7289269 Change-Id: I7a5628adb516f8eec782aa6c14128202f96d7b0a
* Pass display arg to blank/unblankAndy McFadden2012-09-281-2/+2
| | | | | | | | This allows us to blank and unblank displays other than the built-in display (e.g. HDMI). Bug: 7240511 Change-Id: I89ea13f9e497be74c3e1231d0c62fb558e93e0f8
* Revert "Compatibility work around for bad graphics driver dependency."Iliyan Malchev2012-09-271-5/+0
| | | | | | This reverts commit a50b51c03aca449920fc8581a738032a7bce7150 Change-Id: Ibdcd776a7f241dbb2475403ea04f939249774c41
* Show build config in dumpsys SurfaceFlingerAndy McFadden2012-09-251-0/+29
| | | | | | | | | | | | | 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
* fix a crasher in SurfaceTexture's setFilteringEnabledMathias Agopian2012-09-241-2/+3
| | | | | bug: 7211067 Change-Id: Id8658a8df429d76c20ab9112858b38e52343dc9c
* Display events now always carry the display id they happened onMathias Agopian2012-09-211-1/+1
| | | | Change-Id: I12de1d883c23927722bc3a71b782f0079de4e831
* We now report hotplug events to the frameworkMathias Agopian2012-09-201-1/+8
| | | | Change-Id: I2d6b7787d39e5929485a551e4982498c5053c211
* SurfaceTexture: default to doing GL syncJamie Gennis2012-09-181-1/+8
| | | | | | | | | This change makes updateTexImage default to performing the necessary synchronization and adds an argument for SurfaceFlinger to disable that synchronization so that it can be performed lazily. Change-Id: I7c20923cc786634126fbf7021c9d2541aa77be5d Bug: 6991805
* Plumb display name into SurfaceFlingerAndy McFadden2012-09-182-2/+2
| | | | | | | | | | The Surface createDisplay() call takes a display name for debugging. This change carries it through SurfaceFlinger and displays it in the "dumpsys SurfaceFlinger" output. Bug 7058158 Change-Id: I79f3474a8656ff1beb7b478e0dbf2c5de666118a
* Fix transform hintsAndy McFadden2012-09-161-0/+2
| | | | | | | | | The hints were being set a little too late, so the pre-rotation stuff wasn't quite working. Bug 7054997 Change-Id: Id8d5c626db7a76f768ba762a145b315878ee08e6
* SurfaceTexture: use eglWaitSyncJamie Gennis2012-09-101-0/+9
| | | | | | | | | | | This change adds a compile-option to use eglWaitSyncANDROID to ensure that texturing operations that access the current buffer of a SurfaceTexture do not occur until the buffer is completely written. It also moves this synchronization into a new SurfaceTexture method called doGLFenceWait and changes SurfaceFlinger's Layer class to use that method rather than performing its own wait on the fence. Change-Id: I70afa88086ca7ff49a80e3cd03d423767db7cb88
* libgui: move fence handling into ConsumerBaseJamie Gennis2012-09-062-2/+9
| | | | | | | | This change moves some common fence handling code into the base class for BufferQueue consumer classes. It also makes the ConsumerBase class initialize a buffer slot's fence with the acquire fence every time a buffer is acquired. Change-Id: I0bd88bc269e919653b659bfb3ebfb04dd61692a0
* display projection API now has a single function instead of 3Mathias Agopian2012-09-041-5/+15
| | | | Change-Id: I9bf46d372b77d547486d4bbe6f1953ec8c65e98f
* BufferQueue: add a setMaxAcquiredBufferCount checkJamie Gennis2012-09-041-0/+4
| | | | | | | This change adds a check to verify the validity of the value passed to setMaxAcquiredBufferCount. Change-Id: I39730557aa58261e678bd6e4fce11bab78e98362
* libgui: add BufferQueue test infrastructureJamie Gennis2012-08-311-3/+0
| | | | | | | | | This change adds some infrastructure for testing the BufferQueue class. It also includes a test that tests the new check in BufferQueue::acquireBuffer that prevents the consumer from acquiring more than one buffer beyond the max acquired buffer count that was set. Change-Id: I38554ad3f9a53d2ddeba7ef0deee35ec2e2f9775
* BufferQueue: use max acquired buffer countJamie Gennis2012-08-301-10/+22
| | | | | | | | | This change makes BufferQueue derive the min undequeued buffer count from a max acquired buffer count that is set by the consumer. This value may be set at any time that a producer is not connected to the BufferQueue rather than at BufferQueue construction time. Change-Id: Icf9f1d91ec612a079968ba0a4621deffe48f4e22
* Merge "BufferQueue: simplify max buffer count handling" into jb-mr1-devJamie Gennis2012-08-301-4/+13
|\
| * BufferQueue: simplify max buffer count handlingJamie Gennis2012-08-291-4/+13
| | | | | | | | | | | | This change reworks how the maximum buffer count is computed. Change-Id: I7d3745814b9bd6f6f447f86bfea8eb7729914ebf
* | Merge "BufferQueue: clean up buffer counting" into jb-mr1-devJamie Gennis2012-08-302-27/+30
|\ \ | |/
| * BufferQueue: clean up buffer countingJamie Gennis2012-08-292-27/+30
| | | | | | | | | | | | | | | | This change is a clean up of some of the handling of the maximum number of buffers that are allowed at once. It mostly renames a few member variables and methods, but it includes a couple small refactorings. Change-Id: I9959310f563d09583548d4291e1050a7bbc7d87d
* | Revert "A vendor ril depends on a native screen shot code."Wink Saville2012-08-301-5/+0
|/ | | | | | This reverts commit 9b5782baf0a8a2d7afc7129453beb5df7abe7650. A new ril for toro, hack no longer needed.
* A vendor ril depends on a native screen shot code.Wink Saville2012-08-281-0/+5
| | | | | | | Add a temporary shim until the vendor fixes the ril. Bug: 7073467 Change-Id: Ia95a58bd90677c03406c988d1c29ae785f8662f2
* Eradicate DisplayID.Mathias Agopian2012-08-271-6/+0
| | | | | | | | DisplayDevices are now keyed of the wp<IBinder> the client uses. DisplayID has now become DisplayType which is just used to identify physical displays (as opposed to virtual displays such as wifi displays). Change-Id: I0c5968f2c902dcd699a7e0afacf833ff070c12ea
* Compatibility work around for bad graphics driver dependency.Jeff Brown2012-08-271-0/+5
| | | | | | | | | | | This is a compatibility shim for one product whose drivers are depending on SurfaceComposerClient::getDisplayInfo( int, DisplayInfo*) when it really shouldn't. Revert this patch when the problem has been resolved. Bug: 7065398 Change-Id: I6542691b81fd1b1e1d79500a62e82d40a3d51db7
* Remove unused "layer" argument from show().Jeff Brown2012-08-272-2/+2
| | | | Change-Id: I8944a9f4a27c330b11e5e837c69b88c8f84145ba
* Banish DisplayID from the SurfaceFlinger API.Jeff Brown2012-08-274-25/+23
| | | | | | | | | | | | | | | Use only display tokens in the API to refer to new displays. Don't require the caller to specify the display when creating a surface (since in general a surface could be shown on any display). This is intended to be a minimum change just to update the API. Note that SurfaceFlinger still uses DisplayID in a few places internally that might cause some features not to work properly when there are multiple displays (LayerScreenshot, for example). Change-Id: I3d91eec2da406eefd97bcd53655d403ad865a7e6
* Merge "SurfaceTexture: inherit from ConsumerBase (try 2)" into jb-mr1-devJamie Gennis2012-08-242-123/+69
|\
| * SurfaceTexture: inherit from ConsumerBase (try 2)Jamie Gennis2012-08-212-123/+69
| | | | | | | | | | | | | | | | | | This change makes SurfaceTexture inherit from ConsumerBase. It removes all of the functionality from SurfaceTexture that is now provided by the base class. This includes fixes for two bugs that were found after checking this change in the first time and then reverting it. Change-Id: Ie2d9f4f27cfef26fdac341de3152e842b01a58d2
* | Add BufferItemConsumer, a simple BufferQueue consumer.Eino-Ville Talvala2012-08-212-1/+94
|/ | | | | | | | | | | | | | 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
* CpuConsumer: inherit from ConsumerBaseEino-Ville Talvala2012-08-201-47/+6
| | | | Change-Id: I55178b1d673ffa0fbc6e63ef47642c64d4d03228
* improve [un]marshalling of non-binder objectsMathias Agopian2012-08-131-9/+7
| | | | | | | | | | | | | | | | | this change introduces a new class LightFlattenable<> which is a protocol to flatten simple objects that don't require binders or file descriptors; the benefit of this protocol is that it doesn't require the objects to have a virtual table and give us a consitant way of doing this. we also introduce an implementation of this protocol for POD structures, LightFlattenablePod<>. Parcel has been update to handle this protocol automatically. Sensor, Rect, Point and Region now use this new protocol. Change-Id: Icb3ce7fa1d785249eb666f39c2129f2fc143ea4a
* make multi-display more realMathias Agopian2012-08-102-17/+47
| | | | | | | - displays are represented by a binder on the client side - c++ clients can now create and modify displays Change-Id: I203ea5b4beae0819d742ec5171c27568f4e8354b
* libgui includes refactoringMathias Agopian2012-08-102-75/+37
| | | | Change-Id: I1d24ec17f5003ec2abab5f7472daaff4cc4cc2d3
* surfaceflinger: refactor FrambufferSurfaceJamie Gennis2012-08-062-4/+209
| | | | | | | | This change refactors the FramebufferSurface class to inherit from the new ConsumerBase class. Bug: 6620200 Change-Id: I46ec942ddb019658e3c5e79465548b171b2261f2
* screen-off animation won't be handled by SF anymoreMathias Agopian2012-08-031-13/+0
| | | | Change-Id: Idc41386804ae7d7eb981c36e1bc55c270870c8d0
* get rid of the shared-memory control blockMathias Agopian2012-07-252-10/+6
| | | | Change-Id: If814060aca1d2ff2619d4adcd57296983d207f7f
* add a layerStack attribute to Layers.Mathias Agopian2012-07-242-0/+2
| | | | | | | this attribute can be set through a regular transaction using SurfaceComposerClient (just like any other attribute, eg: position or size) Change-Id: I701a47c677ea6442ca713728a93335328cd2b172
* update SF binder protocol to support setting display attributesMathias Agopian2012-07-241-2/+5
| | | | | | | | | no change of functionality -- the old behavior is implemented on top of this new protocol. this new protocol will allow, eventually, to pass informations about displays and layer stacks. Change-Id: Ic6c2295e61ec8ecbc8ce01ab7664e35d928202fc
* Remove unused layer flags.Jeff Brown2012-07-161-3/+0
| | | | Change-Id: Ia85365f18770a9a2c0a0e30ae56b6c2226d41be6
* Remove freeze(), unfreeze() and setFreezeTint().Jeff Brown2012-07-163-8/+0
| | | | | | This is all dead code. Change-Id: I646673aac793a6ec45021c370a2450f0ea4fbcce
* Remove freezeDisplay(), which is no-op.Jeff Brown2012-07-161-6/+0
| | | | Change-Id: I2b70249a1545636fd6d98b58057b22f9529cad21
* Pass fence to HWC on first use of bufferJesse Hall2012-06-301-0/+7
| | | | | | Also do a CPU-wait on the fence before using it for GL composition. Change-Id: I0f645a42a44803276cae11b904e5a26d65871562
* Return fence from acquireBufferJesse Hall2012-06-301-0/+3
| | | | Change-Id: Iab22054c1dc4fd84affab3cc5bbdcd5a1e689666
* Pass fences with buffers from SurfaceTextureClientJesse Hall2012-06-302-14/+34
| | | | Change-Id: I09b49433788d01e8b2b3684bb4d0112be29538d3
* First prototype atttempting to support an external displayMathias Agopian2012-06-281-0/+4
| | | | | | | | | | | both API and implementation will change, this is just a prototype intended to show feasability. SurfaceFlinger is passed an ISurfaceTexture through a new callback, it is in turn used to create an EGLSurface which surfaceflinger will draw into in addition to the main screen. Change-Id: Id0bbb0b854bb7bae44d57246a90b65d4567f9a21
* Pass fences from BufferQueue to SurfaceTextureClientJesse Hall2012-06-212-5/+17
| | | | | | | | | | ISurfaceTexture::dequeueBuffer now returns the buffer's fence for the client to wait on. For BufferQueue, this means passing it through Binder so it can be returned to the SurfaceTextureClient. Now SurfaceTextureClient is responsible for waiting on the fence in dequeueBuffer instead of BufferQueue: one step closer to the goal. Change-Id: I677ae758bcd23acee2d784b8cec11b32cccc196d
* Transfer HWC release fences to BufferQueueJesse Hall2012-06-212-1/+22
| | | | | | | | | | | | | | | | | | 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