History log of /frameworks/base/core/jni/android_view_Surface.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
95429c3d1b8113c23b0aad3b74d724dccfad7fa9 23-Oct-2012 Jamie Gennis <jgennis@google.com> Surface: add the PhysicalDisplayInfo#secure field

Bug: 7368436
Change-Id: I38bf7bbfca354380c30da7516f628cf40416d350
7bbf8163fb83afc54b353a8def52bfb87ecce047 20-Oct-2012 Jamie Gennis <jgennis@google.com> Set the secureness when creating displays

This change makes use of the new 'secure' argument to the
ISurfaceComposer::createDisplay method. In this change both the overlay and
wifi displays are hard-coded to be non-secure displays.

Bug: 7368436
Change-Id: Ib65312f2adab5104d8deefbfc32af9dc106a9129
b6ce6e42cc89864354c7ecb9ae80504a6c9dddcf 16-Oct-2012 Jamie Gennis <jgennis@google.com> Flag window animation transactions as animations.

This change makes WindowManager use the new eAnimation flag when animating
windows. This prevents some of the window updates from being combined with
updates from prior animation frames.

Bug: 7353840
Change-Id: I5a9f8fa2c1a2f5f08363a45cd9f28bb97cd77080
9e316a1a2a8d734315bbd56a85308f9657a92913 09-Oct-2012 Jeff Brown <jeffbrown@google.com> Blank or unblank all displays as need.

Ensures that both the internal display and HDMI are blanked
or unblanked in tandem.

Bug: 7309812
Change-Id: Ie8b96d393e8bb20d23c92f3320142d9f7cf42aff
3bcbad7bcbc4c556a3550f40a3ba85876db7e7d8 18-Sep-2012 Andy McFadden <fadden@android.com> Plumb display name into SurfaceFlinger

Pass the display name into SF's createDisplay().

Bug 7058158

Change-Id: Ia21f07063db2c2fb5a34d6526e16d4b2d3694377
cbad976b2a36a0895ca94510d5208a86f66cf596 05-Sep-2012 Jeff Brown <jeffbrown@google.com> Add support for Wifi display.

Change-Id: I99693786cf9d07d07d3400046c55eb4933730b80
63f1c43fbef157397869475ef30d23e631b88bbe 05-Sep-2012 Mathias Agopian <mathias@google.com> update to new SurfaceComposerClient API

Change-Id: I8f2c96df56fe3a851b8ec03bb8734db0b6bea3d5
64a55af0ac700baecb0877235eb42caac59a3560 26-Aug-2012 Jeff Brown <jeffbrown@google.com> Add plumbing for new surface flinger display API.

Cleaned up the implementation of Surface and SurfaceSession
to use more consistent naming and structure.

Added JNI for all of the new surface flinger display API calls.

Enforced the requirement that all Surfaces created by
the window manager be named.

Updated the display manager service to use the new methods.

Change-Id: I2a658f1bfd0437e1c6f9d22df8d4ffcce7284ca2
0b722fe9ce98d97dbcb6fefd170b85ab7037e528 25-Aug-2012 Jeff Brown <jeffbrown@google.com> Use new surface flinger API.

Change-Id: Ic888577408a59a36481a48010e19c5e77c24e211
98365d7663cbd82979a5700faf0050220b01084d 20-Aug-2012 Jeff Brown <jeffbrown@google.com> Refactor for multi-display support.

Split WindowManagerImpl into two parts, the WindowManager
interface implementation remains where it is but the global
communications with the window manager are now handled by
the WindowManagerGlobal class. This change greatly simplifies
the challenge of having separate WindowManager instances
for each Context.

Removed WindowManagerImpl.getDefault(). This represents the
bulk of this change. Most of the usages of this method were
either to perform global functions (now handled by WindowManagerGlobal)
or to obtain the default display (now handled by DisplayManager).

Explicitly associate each new window with a display and make
the Display object available to the View hierarchy.

Add stubs for some new display manager API features.

Start to split apart the concepts of display id and layer stack.
since they operate at different layers of abstraction.
While it's true that each logical display uniquely corresponds to a
surface flinger layer stack, it is not necessarily the case that
they must use the same ids. Added Display.getLayerStack()
and started using it in places where it was relatively easy to do.

Change-Id: I29ed909114dec86807c4d3a5059c3fa0358bea61
9de4936c99b979f6010440b043edc6d6142d1980 02-Aug-2012 Craig Mautner <cmautner@google.com> Add features to DisplayManager.

Added Surface.setDisplayId().
Added callbacks to DisplayManagerService.

Change-Id: Idd3f85f8ca1f1208962f1196efd6a3ab51c8c259
fa25bf5382467b1018bd9af7f1cb30a23d7d59f7 24-Jul-2012 Jeff Brown <jeffbrown@google.com> Add display manager skeleton.

The purpose of this change is to remove direct reliance on
SurfaceFlinger for describing the size and characteristics of

This patch also starts to make a distinction between logical displays
and physical display devices. Currently, the window manager owns
the concept of a logical display whereas the new display
manager owns the concept of a physical display device.

Change-Id: I7e0761f83f033be6c06fd1041280c21500bcabc0
ef4e817ad642303509da1cb28ce5a265e1ac3e17 17-Jul-2012 Jeff Brown <jeffbrown@google.com> Remove freeze(), unfreeze() and setFreezeTint().

This is all dead code.

Change-Id: Ia8a3068606bfe277a16cde5690f47996657863e8
55e395ab33f24b009d87a4d45a5566394260fff7 16-Jul-2012 Jeff Brown <jeffbrown@google.com> Remove freezeDisplay(), which is no-op.

Change-Id: I981ee49e6e2d41a09feaee4b384392e83f7faf3d
78b8ef3f3ad8ab935f677d8d672db0d97bff8119 07-May-2012 Jamie Gennis <jgennis@google.com> Surface: replace active rect with window crop

This change replaces the setActiveRectCrop method on Surface, which was called
from app processes, with the setWindowCrop method that is to be called from the
window manager.

Bug: 6299171
Change-Id: Ica51efcd8c488a526e7013b83d80df4856694519
b40696cc216f6a5874189fe83055ddaa7b428ce0 01-May-2012 Jamie Gennis <jgennis@google.com> Surface: add JNI plumbing for setActiveRect.

Bug: 6299171
Change-Id: If26e63ebe7def645626af251bed899ff9389f8e5
c14bacf1fb511472138eeb5dc84a9423fc003214 24-Apr-2012 Mathias Agopian <mathias@google.com> add a (hidden) api on Surface to query if the consumer is running behind the producer

Change-Id: I71ec1602f66a4850b130893fc7017b5b1ac1b647
497db8bfdab58c7e14ab3e2007bbe22250963246 13-Apr-2012 Pannag Sanketi <psanketi@google.com> Making the setSurface non-static

The setSurface method can be used to set a java Surface object from a
native Surface object. Making it non-static so that it can be accessed
from other units as well.

Change-Id: Id49b077ec0e7ad91cf10a4bd66938e238062408d
2e76c992bfa955cb637417005941e3e93810a99d 23-Feb-2012 Daniel Lam <dalam@google.com> SurfaceTexture: Fully refactored from BufferQueue

Cleaning up camera and media interactions as part of SurfaceTexture refactoring

Change-Id: Iea2b10ff80b5f01f83ed0902c725df1d3b4c541a
047238ced42eea812de9d39a9f32e94d002bfa5c 08-Mar-2012 Jeff Sharkey <jsharkey@android.com> Switch Parcel to static JNI calls, pass pointer.

Instead of using parcelForJavaObject(), pass down the mNativeObj
pointer explicitly. Benchmarks show that writeInt() is roughly 3x
faster with this approach.

Change-Id: I24ca235c334c44be716070aa8066ec8a429eadb7
8335f1ccccedb6655d96d9d5b697a7f0938235dd 26-Feb-2012 Mathias Agopian <mathias@google.com> fix libgui header location

Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
8835f2928e56622955a05ec9f8aee043828575ca 31-Jan-2012 Bhanu Chetlapalli <bhanu@mips.com> Fix incorrect prototype for JNI call

This issue caused every Application launch to crash when using
portable JIT

Signed-Off-By: Bhanu Chetlapalli <bhanu@mips.com>

Change-Id: Id7cfdeb4fc00ba4b1ca6fa24bc01c8f3432857ff
61566cc1932468720a831ad5cbc68ee080d613c9 03-Dec-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5614559: Registering surface error in...

...Background Replacement on Stingray

This is how I should have done it in the first place. We get the
new surface from the window manager, and then just copy it in to
the constant Surface object we have for the holder.

Change-Id: I537a9e413829a18f689dfb46687014676b27156e
34cb9f2a960c4173bdafb4b8a2444c1bca4c5f0d 31-Aug-2011 Mathias Agopian <mathias@google.com> fix Surface positions are not floats

Added Surface.setPosition(float, float) which allows to set a surface's
position in float.

Bug: 5239859
Change-Id: I903aef4ad5b5999142202fb8ea30fe216d805711
0de171b0d490a5928d54d2fb67c912d140aac643 16-Jul-2011 Ted Bonkenburg <tedbo@google.com> Add support for creating a Surface from a a SurfaceTexture.

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
4e8a5c922c287ec97fec847194e930f8598a1941 23-Jun-2011 tedbo <tedbo@google.com> Add method to create a ParcelSurfaceTexture from android.view.Surface.

Change-Id: I05e343ab7e327478f60322af9373574b70c148f5
050316184b01c0d1a01c46afae7429b89a27c31b 07-Jun-2011 tedbo <tedbo@google.com> Add ParcelSurfaceTexture Java class to enable ISurfaceTexture sharing via Binder.

This adds a new ParcelSurfaceTexture.java class that can be instantiated with
a SurfaceTexture and used to send the corresponding ISurfaceTexture interface
to another process via Binder. The ParcelSurfaceTexture java object can then
be used to create an ANativeWindow based on the SurfaceTextureClient interface.

Change-Id: Ie38ea948b866e52f36a6d0f6cde19b54a8546817
9638e5c167be321643bf3f3ee39e3fb45541fb3b 20-Apr-2011 Mathias Agopian <mathias@google.com> Get rid of the "pid" parameter from createSurface

Change-Id: I28635e3f803e6abe965d79998e305f54a202465d
8451b25a4422656bbd6657a5855e69c0f4d53c74 08-Apr-2011 Elliott Hughes <enh@google.com> Use jniThrowException for exception throwing from native code.

I'll do media and the generated gl stuff separately. Otherwise, this
cleans up all direct calls of ThrowNew/Throw except the one in the
binder that needs to remain.

Change-Id: I8f95a5f020f53b25926ad31ac0c9477ddf85d04b
375aa0b09ba2c6d6951a89299c6a772a3f68aaa0 04-Mar-2011 Carl Shapiro <cshapiro@google.com> Fix a compare of JNI references to use IsSameObject.

Change-Id: I9932761271034ff5031730874daf7c147b6b008a
32a55cf66e12e5e56d2e05b73c6bef453477c2bb 26-Feb-2011 Mathias Agopian <mathias@google.com> Fix sp<> conversion operator / constructor

some of the conversion operators were not using the proper
pointer type when calling incStrong/decStrong, usually it
has no bad consequences, but for some implementation
of the ref-counted object it could lead to recording the wrong
owner id.

Change-Id: If574b9069b8a4cf6e0911a992c8f095aba799995
6062c5912dc79704b489fc8c289b78a400ed05ee 22-Feb-2011 Derek Sollenberger <djsollen@google.com> Skia Merge (revision 808)

This is a companion CL to the one found in /external/skia

Change-Id: If81748545435cab20a5d8479329ab333cb973e16
fea12b87f2988f20ea87314c4a1b47e1a0f4d95e 28-Jan-2011 Romain Guy <romainguy@google.com> Catch exception when ViewRoot's surface is not valid.
Bug #3399426

Change-Id: Id4e0b8714c9520c4e84e81c2978752d46c912b6b
2a83f001fdb189f945e82e81e717ba204824b112 19-Jan-2011 Romain Guy <romainguy@google.com> Recreate the EGL surface when ViewRoot's surface changes.
Bug #3306150

Change-Id: Ifbf0ab9deca7a34eff7d844ea7276d12d7284788
d2835935d2df8be70d1b37d3ef3b2fe0155b3422 14-Dec-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3258849: Grab thumbnail when exiting an app via back

Also issue #3281400: Rotating a retained instance fragment leaks the fragment manager

And turn off fragment debug logging.

Change-Id: Ibdd7db82bb35618021bcba421ba92ced7cd691c2
1f5b195ed0f7f4a3398903fc064af1788c108bad 29-Nov-2010 Dianne Hackborn <hackbod@google.com> Don't leak.

Change-Id: I756d54feeef4ff73f17c80d4b4405de56a5787a6
a111187a5b4dc5d287e29ced7d65e8d20edca140 24-Nov-2010 Dianne Hackborn <hackbod@google.com> Change rotation freeze to all be implemented in window manager.

Lots of work for no visible change in behavior, but now we can
do some fancier stuff...

Also allow rotation in all 4 directions.

Change-Id: I7e5e9537c5e359f69b83c10f65cc1ce95f371461
5ee65f0d441ca558bc95b60c1468f2aadfeeddbd 16-Jul-2010 Jamie Gennis <jgennis@google.com> Re-use existing Surface objects when reading them from parcels.

This change adds a process-global cache of previously deserialized Surface
objects so that if a Surface object wrapping the same ISurface gets received
again the same Surface can be used. This is important because the 'tail'
pointer in the SharedBufferClient is stored only on the client side, and needs
to be the same for all the Surface objects wrapping an ISurface instance. This
solves the problem by making there only be one Surface object wrapping an
ISurface per process.

Change-Id: I4bf0b8787885c56277622fca053022d2bb638902
289b9b62372ef52a06113b83dfb870e2c2fb325a 09-Jul-2010 Dianne Hackborn <hackbod@google.com> Add ANativeWindow API for directly drawing to the surface bits.

Also other cleanup and fixes:

- We now properly set the default window format to 565.
- New APIs to set the window format and flags from native code.
- Tweaked glue for simpler handling of the "destroy" message.
- Um, other stuff.

Change-Id: Id7790a21a2fa9a19b91854d225324a7c1e7c6ade
54a181b1a2b1517a9479b21fbf7705a688232faf 01-Jul-2010 Dianne Hackborn <hackbod@google.com> Make real API for native code to get its window.

Added implementation to use ANativeWindow and provide
it to a NativeActivity.

Change-Id: I890d71b6e15d4af71e6cf81b327961d7061ec1c2
8b73ae4a1e5321753e54354e5202a38c5560fea9 11-Jun-2010 Mathias Agopian <mathias@google.com> fix [2757903] Crash in EGL when creating an EGLSurface

Change-Id: I995947ac40d1a5c86dce495550baf6864ecf5f54
fae5cb2b356a1fef172b43066180a7ab4c32dbac 05-Jun-2010 Mathias Agopian <mathias@google.com> optimize Surface.readFromParcel()

this is called for each relayout() and used to create a full Surface (cpp)
which in turn did some heavy work (including an IPC with surfaceflinger),
most of the time to destroy it immediatelly when the returned surface
(the one in the parcel) was the same.

we now more intelligentely read from the parcel and construct the new
object only if needed.

Change-Id: Idfd40d9ac96ffc6d4ae5fd99bcc0773e131e2267
55fb51aa411b574646cc3068ce36e73789b81616 27-Apr-2010 Marco Nelissen <marcone@google.com> resolved conflicts for merge of 86303198 to kraken

Change-Id: Idd921c7108e4c2cd4a861ee1fb8b43e5d56f8f2f
8138cb49e47f9a9905a316a217757710185c66aa 27-Apr-2010 Marco Nelissen <marcone@google.com> Make Surface.toString() show more useful info to help debug bug 2594388.

Change-Id: I005d3388503d8886e11a26fece30b87572934f15
a8a0aa8b922c45fb4633f51610f264a19f9bd825 22-Apr-2010 Mathias Agopian <mathias@google.com> better fix for [2420565] Surface.lockCanvas() updates the dirty region too often

Change-Id: I83438b40effd21538f1c74396dc665254b9d5ab6
8b138323d54e36fd66b22a634494648e20c53373 13-Apr-2010 Mathias Agopian <mathias@google.com> don't hardcode "mSurface" throughout our source code

this is used in a few places to get access to the android.view.Surface
native surface. use a macro instead. Also rename the field to mNativeSurface.

Change-Id: I1c6dea14abd6b8b1392c7f97b304115999355094
af1e11b849ea527f4b1b1695924ce42cc9d7f670 23-Mar-2010 Mathias Agopian <mathias@google.com> one step toward fixing [2501808] sapphire: OOM in GPU Surface area

when a surface was returned from a remote process through the binder we
would leak its resources until a GC happened.

implement writeToParcel to release the source when PARCELABLE_WRITE_RETURN_VALUE
is set

Change-Id: I6a9fa369b0d164a9ca1229b8a2944d3c132a3720
5d26c1e38dabb3ad8b4b6e1000375f3b1a6b7693 02-Mar-2010 Mathias Agopian <mathias@google.com> Added a name to Surface created by SurfaceFlinger

Updated the window manager to use this new facility.
Surfaces name are now printed by "dumpsys".
000479f9e325b4e426a67033abd92d47da412725 10-Feb-2010 Mathias Agopian <mathias@google.com> split libsurfaceflinger_client and libcamera_client out of libui
0586a1b77a788a119166a37fccd909bf9ed65f23 07-Sep-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2095422: Some fades from opaque to transparent don't work

ViewRoot was using Surface.clear(), which has different behavior
in different processes -- in the system process it would kill the
surface, causing all windows in that process to immediately disappear
instead of animating away.

This change makes Surface.release() public and uses that instead. It
also renames Surface.clear() to Surface.destroy().

Also fixed some issues in the window manager that were causing the
wallpaper to not get immediately resized when the orientation changes
and its target window is removed and re-added.

Change-Id: I2a992e365cf5747511f0bf1193db32dc2525b218
f1e5b0d4e5d0d2a78c234cd0cbd3005a74a79429 08-Aug-2009 Mathias Agopian <mathias@google.com> add support for RGBX_8888
6158b1bf0364da1582468a98ec09d004ba99deec 11-May-2009 Mathias Agopian <mathias@google.com> Region now has its own implementation instead of relying on SkRegion, which allows us to break libui's dependency on libcorecg.
69d62097e8195c947de7e4cdc4a491181aa56e61 17-Apr-2009 Mathias Agopian <mathias@google.com> cleanup, remove unused fields. Also make sure that we don't systematically allocate a Surface in Surface.java if only a SurfaceControl is needed (Common case).
17f638b39f2e8b610ecfa1290e5bc42ab7700c98 17-Apr-2009 Mathias Agopian <mathias@google.com> more splitting of Surface/SurfaceControl. Surface.java is now implemented in terms of Surface and SurfaceControl.

The WindowManager side of Surface.java holds a SurfaceControl, while the client-side holds a Surface. When the client is in the system process, Surface.java holds both (which is a problem we'll try to fix later).
402c34649f514669517c2208e35caa58ff8bb2b9 15-Apr-2009 Mathias Agopian <mathias@google.com> fix some issues with Surface's lifetime management.

To deal with Java's lack of destructors and delayed garbage collection, we used to duplicate Surface.cpp objects in some case; this caused some issues because Surface is supposed to be reference-counted and unique.
1473f46cbc82aa6f0ba744cc896a36923823d55b 10-Apr-2009 Mathias Agopian <mathias@google.com> Integrate from //sandbox/mathias/donut/...@145728

SurfaceFlinger rework for new EGL driver model support.
eb0c86e18b7d620b679ff2a45a0233867a53a334 28-Mar-2009 Mathias Agopian <> AI 143320: am: CL 143171 am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor
Original author: mathias
Merged from: //branches/cupcake/...
Original author: android-build
Merged from: //branches/donutburger/...

Automated import of CL 143320
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution