summaryrefslogtreecommitdiff
path: root/include/surfaceflinger
AgeCommit message (Collapse)Author
2012-02-27fix libgui header location Mathias Agopian
Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
2012-02-24remove dependency on android_native{s_priv|buffer}.h Mathias Agopian
Change-Id: Ie4b95f7061c240f37c504414259f92d72c4ffc89
2011-11-29Add support for sending VSYNC events to the framework Mathias Agopian
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
2011-11-29Fix build. Mathias Agopian
Revert "Add support for sending VSYNC events to the framework" This reverts commit f3918c5bd4bc9f02f74da42995564150ca2dd382. Change-Id: I998e3e1aa3fa310829ae973b64fe11b01f6f468f
2011-11-29Add support for sending VSYNC events to the framework Mathias Agopian
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
2011-11-28split ComposerService out of SurfaceComposerClient.h Mathias Agopian
Change-Id: I1eb691f7ca263d5895d871ab675bb5826e0323c6
2011-10-18am 70ac412b: Merge "Add a LayerScreenshot" into ics-mr0 Dave Burke
* commit '70ac412b2fe7be2507189a9fdfb30c43b36d56ac': Add a LayerScreenshot
2011-10-18Add a LayerScreenshot Mathias Agopian
A LayerScreenshot is a special type of layer that contains a screenshot of the screen acquired when its created. It works just like LayerDim. Make sure to call compositionComplete() after rendering into a FBO. Bug: 5446982, 5467587, 5466259 Change-Id: I5d8a1b4c327f9973d950cd4f4c0bca7f62825cd4
2011-10-17am 840b8a67: Revert "Add a LayerScreenshot" Mathias Agopian
* commit '840b8a678537519c27ddf2f818494eaa20a135d4': Revert "Add a LayerScreenshot"
2011-10-17Merge branch 'master' of ssh://android-git:29418/platform/frameworks/base Elliott Hughes
2011-10-16Revert "Add a LayerScreenshot" Mathias Agopian
This reverts commit d6809f40cf61203573ec5dbc437f695cd132cc18.
2011-10-14SurfaceFlinger: Remove display freezing code Jamie Gennis
This change removes the dead code from SurfaceFlinger that resulted from disabling support for freezing the display. Change-Id: I4e5ff00c94b4c7a79af2f65c9850c135210068ed
2011-10-14SurfaceFlinger: make sync transactions explicit Jamie Gennis
This change enables a layer or orientation update transaction sent to SurfaceFlinger to explicitly request a synchronous transaction. Change-Id: I97cbba610c13679849f66114b216fa6dbf12f2a9
2011-10-14Add a LayerScreenshot Mathias Agopian
A LayerScreenshot is a special type of layer that contains a screenshot of the screen acquired when its created. It works just like LayerDim. Bug: 5446982 Change-Id: I7814aff2380e7e146937f2b641907be2a30c76cc
2011-10-11SurfaceFlinger: update orientation via transactions Jamie Gennis
This change merges the ISurfaceComposer::setOrientation functionality into ISurfaceComposer::setTransactionState. It enables the window manager to atomically update both the display orientation and the position and size of the windows in a single transaction with SurfaceFlinger. Bug: 5439574 Change-Id: I18a8ccc564d7d760ef8afb2d015ccdb7a7963900
2011-09-21Handle orientation changes more systematically. Jeff Brown
Bug: 4981385 Simplify the orientation changing code path in the WindowManager. Instead of the policy calling setRotation() when the sensor determined orientation changes, it calls updateRotation(), which figures everything out. For the most part, the rotation actually passed to setRotation() was more or less ignored and just added confusion, particularly when handling deferred orientation changes. Ensure that 180 degree rotations are disallowed even when the application specifies SCREEN_ORIENTATION_SENSOR_*. These rotations are only enabled when docked upside-down for some reason or when the application specifies SCREEN_ORIENTATION_FULL_SENSOR. Ensure that special modes like HDMI connected, lid switch, dock and rotation lock all cause the sensor to be ignored even when the application asks for sensor-based orientation changes. The sensor is not relevant in these modes because some external factor (or the user) is determining the preferred rotation. Currently, applications can still override the preferred rotation even when there are special modes in play that might say otherwise. We could tweak this so that some special modes trump application choices completely (resulting in a letter-boxed application, perhaps). I tested this sort of tweak (not included in the patch) and it seems to work fine, including transitions between applications with varying orientation. Delete dead code related to animFlags. Handle pausing/resuming orientation changes more precisely. Ensure that a deferred orientation change is performed when a drag completes, even if endDragLw() is not called because the drag was aborted before the drop happened. We pause the orientation change in register() and resume in unregister() because those methods appear to always be called as needed. Change-Id: If0a31de3d057251e581fdee64819f2b19e676e9a
2011-08-30fix Surface positions are not floats Mathias Agopian
Added Surface.setPosition(float, float) which allows to set a surface's position in float. Bug: 5239859 Change-Id: I903aef4ad5b5999142202fb8ea30fe216d805711
2011-08-17SurfaceTexture: fix queues-to-composer Jamie Gennis
This change fixes the NATIVE_WINDOW_QUEUES_TO_WINDOW_COMPOSER query of Surface and SurfaceTextureClient. Surface now uses the inherited SurfaceTextureClient implementation of this query. SurfaceTextureClient now queries SurfaceFlinger to determine whether buffers that are queued to its ISurfaceTexture will be sent to SurfaceFlinger (as opposed to some other process). Change-Id: Iff187e72f30d454229f07f896b438198978270a8
2011-07-22Add support for creating a Surface from a a SurfaceTexture. Ted Bonkenburg
The Surface is already using SurfaceTexture internally and it is parcelable. This is intended to replace and phase out ParcelSurfaceTexture in favor of creating a new Surface.java object from an existing SurfaceTexture. Change-Id: I8e2dd86614523da6abed6403e1d705a68fa19fdf
2011-07-20clean-up. get rid ofunused code and members in Surface[Control].cpp Mathias Agopian
Change-Id: Ia7790ae28af2c2ac99eae01c2c5044ace4a490a4
2011-07-15move lock/unlock implementaion outside of Surface into SurfaceTextureClient Mathias Agopian
This makes ANativeWindow_lock/ANativeWindow_unlockAndPost work with ANativeWindows implemented by Surface and SurfaceTextureClient. Also, Surface now inherits directly from SurfaceTextureClient. Bug: 5003724 Change-Id: I9f285877c7bae9a262e9a7af91c2bae78804b2ef
2011-07-01return an error code with gralloc buffer allocation failures Mathias Agopian
Change-Id: I471e5d37ea7a42fc8a0f93446ee3b4229da37807
2011-06-29SF transactions are now O(1) wrt IPC instead of O(N). Mathias Agopian
Change-Id: I57669852cbf6aabae244ea86940a08a5a27ffc43
2011-06-22Add method to create a ParcelSurfaceTexture from android.view.Surface. tedbo
Change-Id: I05e343ab7e327478f60322af9373574b70c148f5
2011-06-13unify SurfaceTexture and Surface Mathias Agopian
Add the concept of synchronous dequeueBuffer in SurfaceTexture Implement {Surface|SurfaceTextureClient}::setSwapInterval() Add SurfaceTexture logging fix onFrameAvailable
2011-05-03frameworks/base: android_native_buffer_t -> ANativeWindowBuffer Iliyan Malchev
Change-Id: Idc2eabaa805bb6d308ebb315872623f28d428417 Signed-off-by: Iliyan Malchev <malchev@google.com>
2011-05-03frameworks/base: make the ANativeWindow query() method const Iliyan Malchev
query() does not modify the object's data, so it needs to be a const method Change-Id: I67c40a3c865461e6f1cc2193fd2d74286ff6ac8f Signed-off-by: Iliyan Malchev <malchev@google.com>
2011-04-20Get rid of the "pid" parameter from createSurface Mathias Agopian
Change-Id: I28635e3f803e6abe965d79998e305f54a202465d
2011-04-08Fix a GraphicBuffer leak in SurfaceTexture Mathias Agopian
This leak was intentional, it was there to deal with the fact that some gralloc implementations don't track buffer handles with file-descriptors so buffers needed to stay alive until there were registered, which is not guaranteed by binder transactions. In this new implementation, we use a small BBinder holding a reference to the buffer, which with tuck into the parcel. This forces the reference to stay alive until the parcel is destroyed, which is guaranteed (by construction) to happen after the buffer is registered. this allows the public facing API to not expose the previous hack. Change-Id: I1dd6cd83679a2b7457ad628169e2851acc027143
2011-04-05remove more unused references to ISurface Mathias Agopian
Change-Id: I2201f1ca2bb8f203a081d94a0134f798778dfbef
2011-03-17Add support for timestamps into SurfaceTexture. Eino-Ville Talvala
API addition: The timestamps are represented as nanoseconds from some arbitrary time point. Like the SurfaceTexture transform matrix, the timestamp retrieved by getTimestamp is for the last frame sent to the GL texture using updateTexImage(). Camera HAL change: Expect vendors to set these timestamps using native_window_set_buffers_timestamp(). For now, they are autogenerated by SurfaceTextureClient if set_buffers_timestamp() is never called, but such timing is likely not accurate enough to pass a CTS test. bug:3300707 Change-Id: Ife131a0c2a826ac27342e11b8a6c42ff49e1bea7
2011-03-08ANativeWindow: add queues-to-window-composer check. Jamie Gennis
This change adds a new 'method' to the ANativeWindow interface to check whether buffers queued to the window will be sent directly to the system window compositor. Change-Id: I4d4b199e328c110b68b250029aea650f03c8724d Bug: 3495535
2011-02-28Add the MIN_UNDEQUEUED_BUFFERS query to ANW. Jamie Gennis
This change adds a new query to ANativeWindow for getting the minimum number of buffers that must be left un-dequeued during the steady-state operation of the ANativeWindow. Change-Id: Ie8c461fc26b02ecde02ddb4f95bf763662cf1551 Related-Bug: 3356050
2011-01-28Protected surface API Glenn Kasten
To be used by DRM framework, implemented by display HAL Change-Id: I054a07a94f4d5dbe792f3a597e2e49a100d90eb2
2011-01-16integrate videoeditor preview player. Dharmaray Kundargi
Change-Id: I83084f494605c8e6f4d198afa8c36f9e29579667
2011-01-14Merge "Fix error reporting in Surface::cancelBuffer()" into honeycomb Mathias Agopian
2011-01-14Fix error reporting in Surface::cancelBuffer() Mathias Agopian
when we validate the surface there, most errors are in fact allowed because it is legal to cancel a buffer after a surface has been destroyed (for instance). in that case make sure to not log error messages as they are very confusing. Change-Id: Iecdfbaf6d9ee5da54d56cd7ea7a0d430c30934b0
2011-01-13Fix remote GraphicBuffer allocation in SurfaceFlinger. Jamie Gennis
This change fixes a horrible hack that I did to allow application processes to create GraphicBuffer objects by making a binder call to SurfaceFlinger. This change introduces a new binder interface specifically for doing this, and does it in such a way that SurfaceFlinger will maintain a reference to the buffers until the app is done with them. Change-Id: Icb240397c6c206d7f69124c1497a829f051cb49b
2011-01-06Add the ISurfaceComposer::createGraphicBuffer IPC. Jamie Gennis
This change adds a new binder method to the ISurfaceComposer interface. This IPC is intended to allow SurfaceFlinger clients to allocate gralloc buffers using SurfaceFlinger as a proxy to gralloc. Change-Id: Ide9fc283aec5da6268ba62cfed0c3319a50b640d
2010-12-14Merge "minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so." Mathias Agopian
2010-12-13minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so. Mathias Agopian
Change-Id: I3bdca74351c8e480a05084bc412a96c5f685221d
2010-12-10[3258939] Need snapshot to limit which layers are included Mathias Agopian
Change-Id: Id7351a0e3f53dde99b291cffba553d89fd4d7ca9
2010-12-08remove support for PUSH_BUFFER surfaces and overlays Mathias Agopian
the same functionality is now supported through the h/w composer HAL, and YUV support in the GPU. Change-Id: I8146605449954b8e8fd7f78810b7d873c2d8f5bf
2010-10-16am 7e9a54d4: am d4e03f37: addresses parts of 3096779 and 3097475 Mathias Agopian
Merge commit '7e9a54d460030a871a4f05e61e943c6a694e9ef8' * commit '7e9a54d460030a871a4f05e61e943c6a694e9ef8': addresses parts of 3096779 and 3097475
2010-10-15am 5bfa3a34: am 011b5bcc: Merge "implement part of [3094280] New animation ↵ Mathias Agopian
for screen on and screen off add support for screen on animation" into gingerbread Merge commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f' * commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f': implement part of [3094280] New animation for screen on and screen off
2010-10-14addresses parts of 3096779 and 3097475 Mathias Agopian
3097475: Animation setting should control the screen on animation 3096779: CRT power-on animation can briefly show the top app instead of lockscreen There is now a parameter that controls wether the ON and/or OFF animation are performed. we also always clear the screen to black on power off, to make sure it won't briefly appear on power on. HOWEVER, 3096779 is not 100% fixed in the case where we're doing the animation because there is a race, where SF doesn't wait (b/c it doesn't know) for the framework to have redrawn the lockscreen. Change-Id: Ie0f02c9225fcdf24b1e8907e268eb7da2c5b0a03
2010-10-13am 9a12a3c8: am ba799098: Merge changes I76513387,I335fb671 into gingerbread Joe Onorato
Merge commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96' * commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96': Remove dead code, and make the animation a setting. turn off the electron beam
2010-10-13implement part of [3094280] New animation for screen on and screen off Mathias Agopian
add support for screen on animation Change-Id: If50cf52ae04b95b42da7d74cf7fa96d5cb54d238
2010-10-12turn off the electron beam Mathias Agopian
Change-Id: I335fb6719f1d5a3f1c6f37a046fd1c2c4ed2bbc6
2010-10-12Always create OpenGL accelerated windows in RGBA 8888. Romain Guy
Bug #3081600 The OpenGL renderer in libhwui uses a single EGL context per process and thus create it with an RGBA 8888 EGL configuration. To ensure that all windows are compatible with this configuration, this change modifies the window manager and SurfaceFlinger. The window manager now checks the window's flags and if the window is hardware accelerated, it forces the window's pixel format to be translucent when creating the surface. The window itself is still marked as opaque if we know that the window will be opaque on screen. This keeps existing optimizations in place. Similarly in SurfaceFlinger, a translucent Surface can now be created with the Surface.OPAQUE flag, indicating SurfaceFlinger that the surface does not require blending, despite its RGBA 8888 configuration. Change-Id: Ic747b6b12564ba064412d842117880fcc199eb7c