752 Commits

Author SHA1 Message Date
Mathias Agopian
97b8056c31 add support for update-on-demand in SurfaceFlinger 2009-05-07 17:40:23 -07:00
Mathias Agopian
927d37cb78 fix EGL extension string names 2009-05-07 15:07:52 -07:00
Mathias Agopian
2e20bffbab created an new EGL extension called ANDROID_swap_rectangle
ANDROID_swap_rectangle allows to specify the rectangle affected by eglSwapBuffers(), anything outside of this rectangle is unchanged. in particular EGL_BUFFER_DESTROYED only applies to that rectangle. This extension as well as EGL_BUFFER_PRESERVED allow major optimizations on surfaceflinger, which can redraw only the dirty area during compositing.

However, ANDROID_swap_rectangle allows further optimizations in EGL by reducing the amount of copy-back needed. ANDROID_swap_rectangle is particularily important for software implementations.
2009-05-07 15:07:33 -07:00
Dave Sparks
2a04aefdf0 Add new binder methods to camera client to support generic callbacks
This is the first step in a multi-step change to move from the old
specific callbacks to a generic callback. This will allow future
flexibility in the interface without requiring binder rewrites.
Bug 1837832
2009-05-07 12:25:25 -07:00
Joe Onorato
7fca565135 fix the sim build. disables the tests for now. 2009-05-06 12:55:46 -04:00
Android (Google) Code Review
b61381bc94 am 4488b11: Merge change 1039 into donut
Merge commit '4488b11c51ad8f5b8330279a9405e5a0f8586aa4'

* commit '4488b11c51ad8f5b8330279a9405e5a0f8586aa4':
  Add some C++ code to do raw files for backup
2009-05-06 01:31:32 -07:00
Mathias Agopian
9bd5da4db9 get rid off unneeded flags 2009-05-05 18:29:35 -07:00
Mathias Agopian
b51e18d59b move android_native_buffer_t declaration into its own private/ui/android_native_priv.h header, since user code should never have access to it. 2009-05-05 18:21:32 -07:00
Mathias Agopian
ac2523b161 move opengl/include/EGL/android_natives.h to include/ui/egl/android_natives.h and don't include it from egl.h
the android_native_ types are just forward declared in egl.h
2009-05-05 18:11:11 -07:00
Joe Onorato
3ad977b41c Add some C++ code to do raw files for backup 2009-05-05 13:45:25 -07:00
Mathias Agopian
e633f9339a get rid of android_native_buffer_t::getHandle() and replace it with an handle field
this abstraction was not necessary. things are easier now.
2009-05-05 00:59:23 -07:00
Mathias Agopian
430f2ed5c0 removed the "bits" attribute from android_native_buffer_t.
"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-05 00:37:46 -07:00
Mathias Agopian
6279619e42 minor clean-up in FramebufferNativeWindow 2009-05-04 19:38:43 -07:00
Mathias Agopian
dff8e58d47 update surfaceflinger, libui and libagl to the new gralloc api
- 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-05-04 14:17:04 -07:00
Mathias Agopian
fa6eda01a9 Merge commit 'goog/master' into merge_master
Conflicts:
	libs/surfaceflinger/Layer.cpp
	libs/surfaceflinger/SurfaceFlinger.cpp
	opengl/libagl/egl.cpp
	opengl/libs/EGL/egl.cpp
	opengl/libs/GLES_CM/gl.cpp
	opengl/libs/GLES_CM/gl_api.in
	opengl/libs/gl_entries.in
	opengl/libs/tools/glapigen
2009-04-30 14:43:18 -07:00
Android (Google) Code Review
a73b41ae60 am 0124a15: Merge change 626 into donut
Merge commit '0124a150157d69a9f0ea109be2390afb5399b8a7'

* commit '0124a150157d69a9f0ea109be2390afb5399b8a7':
  fix 1803886 android15 Translucent GLSurfaceView demo does not display properly
2009-04-29 13:35:37 -07:00
Android (Google) Code Review
8e64406227 am 17f213b: Merge change 602 into donut
Merge commit '17f213bc528cf296e133e9ec9c9e0ce5dce41781'

* commit '17f213bc528cf296e133e9ec9c9e0ce5dce41781':
  Bug fix(1807910): media recorder crash due to the use of locked camera object (last part)
2009-04-29 13:35:33 -07:00
Android (Google) Code Review
9f5a54a59d am 0a9b5bb: Merge change 509 into donut
Merge commit '0a9b5bbb47a965238ca0e1e699d61d7ddd054742'

* commit '0a9b5bbb47a965238ca0e1e699d61d7ddd054742':
  Fix a media server crash (bug 1807910): part one
2009-04-29 13:11:33 -07:00
Android (Google) Code Review
5c685a948e am 9c56513: Merge change 165 into donut
Merge commit '9c5651390056cd9c2f68d5df057739528bd4128b'

* commit '9c5651390056cd9c2f68d5df057739528bd4128b':
  Squashed commit of the following:
2009-04-29 13:11:32 -07:00
Mathias Agopian
bdbe6024a5 make use of the perfectly fine List.h instead of our own reimplementation of a linked list. 2009-04-28 03:17:50 -07:00
Mathias Agopian
0c6b5f6ec3 fix 1803886 android15 Translucent GLSurfaceView demo does not display properly 2009-04-27 18:50:06 -07:00
James Dong
325ac475c5 Bug fix(1807910): media recorder crash due to the use of locked camera object (last part)
- remove an unused Camera constructor
- add a check on the argument in Camera::create() method
2009-04-27 12:01:59 -07:00
Mathias Agopian
81b0aa696a get rid of an old hack to work around a bug around glDeleteTextures() in the adreno drivers 2009-04-24 16:31:11 -07:00
Mathias Agopian
ef07dda442 get rid of the "show fps" debug option 2009-04-24 16:31:11 -07:00
Mathias Agopian
a3aa6c9aa9 Surfaces are now destroyed properly in SurfaceFlinger.
First, the window manager tells us when a surface is no longer needed. At this point, several things happen:
- the surface is removed from the active/visible list
- it is added to a purgatory list, where it waits for all clients to release their reference
- it destroys all data/state that can be spared

Later, when all clients are done, the remains of the Surface are disposed off: it is removed from the purgatory and destroyed.
In particular its gralloc buffers are destroyed at that point (when we're sure nobody is using them anymore).
2009-04-24 16:30:38 -07:00
Mathias Agopian
6ead5d9f14 a brand new MessageQueue for SurfaceFlinger. 2009-04-24 16:22:36 -07:00
Mathias Agopian
6cf0db228c more Surface lifetime management
Surfaces are now destroyed once all references from the clients are gone, but they go through a partial destruction as soon as the window manager requests it.
This last part is still buggy. see comments in SurfaceFlinger::destroySurface()
2009-04-24 15:00:41 -07:00
Mathias Agopian
2b1927f686 Squashed commit of the following:
commit e5c24638f98162c3b75b4c67a16b510d38e31341
Author: Mathias Agopian <mathias@google.com>
Date:   Fri Apr 17 14:09:03 2009 -0700

    oops forgot this file.

commit 282642632d0cb12882eecf42e0fdfb2343275de1
Author: Mathias Agopian <mathias@google.com>
Date:   Fri Apr 17 14:07:32 2009 -0700

    use a helper macro for creating Singleton<>'s static attributes instances.
2009-04-24 15:00:41 -07:00
Mathias Agopian
f670127afc Merge commit 'goog/master' into merge_master 2009-04-24 14:24:20 -07:00
Android (Google) Code Review
0a9b5bbb47 Merge change 509 into donut
* changes:
  Fix a media server crash (bug 1807910): part one Add a factory method that creates a Camera object from a remote client
2009-04-23 15:58:38 -07:00
James Dong
2adc2dbbd6 Fix a media server crash (bug 1807910): part one
Add a factory method that creates a Camera object from a remote client

Next:
The changes in authordriver.cpp and android_camera_input.cpp will come.
and the constructor for Camera object will be removed.
2009-04-23 14:07:23 -07:00
Jean-Baptiste Queru
74008f608a Merge donut into master 2009-04-22 17:12:34 -07:00
Robert Greenwalt
96e20409af Squashed commit of the following:
commit 012b56fc607cf243cf4b29cb2a5f172bcbe0aecd
Author: Robert Greenwalt <robdroid@android.com>
Date:   Wed Apr 22 14:31:26 2009 -0700

    Additional fixes and tests for density.

commit 91fdc8e187551ae69e0029a4325fb3ad38fe411b
Author: Robert Greenwalt <robdroid@android.com>
Date:   Tue Apr 14 14:39:00 2009 -0700

    Fix runtime resource selection logic.

    Fix isBetterThan so that o or this may be supperior at any stage.
    Used to only handle this-better or tie at each stage, biasing against o.
    Also allows reset of unit test to succeed.  Fixes bug 1709202.
2009-04-22 14:35:11 -07:00
Eric Laurent
ef02827d4c Fix issue 1745312: Various cleanups in media framework
AudioTrack, AudioRecord:
  - remove useless mAudioFlinger member of AudioTrack and AudioRecord.
  - signal cblk.cv condition in stop() method to speed up stop completion.
  - extend wait condition timeout in obtainBuffer() when waitCount is -1 to avoid waking up callback thread unnecessarily

AudioFlinger:
  - remove some warnings in AudioFlinger.cpp.
  - remove function AudioFlinger::MixerThread::removetrack_l()  as its content is never executed.
  - remove useless call to setMasterVolume in AudioFlinger::handleForcedSpeakerRoute().
  - Offset VOICE_CALL stream volume to reflect actual volume that is never 0 in hardware (this fix has been made in the open source): 0.01 + v * 0.99.

AudioSystem.java:
  - correct typo in comment

IAudioflinger, IAudioFlingerClient:
  - make AudioFlinger binder interfaces used for callbacks ONEWAY.

AudioHardwareInterface:
  - correct routeStrings[] table in AudioHardwareInteface.cpp
2009-04-21 07:56:33 -07:00
Marco Nelissen
e7c71d3a8c Merge branch 'readonly-p4-master' 2009-04-20 12:49:56 -07:00
Marco Nelissen
e38e90bf22 AI 146964: tabs -> spaces
Automated import of CL 146964
2009-04-20 12:48:39 -07:00
Mathias Agopian
69d62097e8 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). 2009-04-16 20:30:22 -07:00
Mathias Agopian
17f638b39f 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).
2009-04-16 20:04:08 -07:00
Mathias Agopian
6d2c0bc7bf split Surface.cpp into Surface and SurfaceControl
SurfaceControl is used for controling the geometry of the surface (for the WM), while Surface is used to access the buffers (for SF's clients).
SurfaceFlingerClient now uses the SurfaceID instead of Surface*.

Currently Surface still has the SurfaceControl API and is implemented by calling into SurfaceControl.
2009-04-16 16:19:50 -07:00
Mathias Agopian
ed81f2216a fix a few typos in comments. this is really intended as a git pull/push test. 2009-04-16 12:29:34 -07:00
Mathias Agopian
402c34649f 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.
2009-04-16 12:29:34 -07:00
Mathias Agopian
a6b40ba521 fix a rookie mistake causing Singleton<> to be a "multiton". Also improve the BufferMapper's debugging, but turn it off.
Squashed commit of the following:

commit 04e9cae7f806bd65f2cfe35c011b47a36773bbe5
Author: Mathias Agopian <mathias@google.com>
Date:   Wed Apr 15 18:30:30 2009 -0700

    fix and improve BufferMapper's tracking of mapped buffers.

commit 1a8deaed15811092b2349cc3c40cafb5f722046c
Author: Mathias Agopian <mathias@google.com>
Date:   Wed Apr 15 00:52:02 2009 -0700

    fix some bugs with the Singleton<> class. untested.

commit ed01cc06ad70cf640ce1258f01189cb1a96fd3a8
Author: Mathias Agopian <mathias@google.com>
Date:   Tue Apr 14 19:29:25 2009 -0700

    some work to debug the Singleton<> template.
2009-04-15 18:34:24 -07:00
Mathias Agopian
af9a515299 more debugging tools around BufferMapper 2009-04-10 20:34:46 -07:00
Mathias Agopian
0179ff6594 Merge commit 'goog/master' into master_gl
Conflicts:
	libs/utils/Parcel.cpp
2009-04-10 14:36:33 -07:00
Mathias Agopian
1473f46cbc Integrate from //sandbox/mathias/donut/...@145728
SurfaceFlinger rework for new EGL driver model support.
2009-04-10 14:24:30 -07:00
Nick Pelly
20f07d406f Merge branch 'readonly-p4-master' 2009-04-02 10:31:50 -07:00
Nick Pelly
f1b083fb85 AI 144205: am: CL 144151 am: CL 144150 Fix heap corruption.
Take mutex in close(), and skip write path after turning bluetooth off.
  Original author: npelly
  Merged from: //branches/cupcake/...
  Original author: android-build
  Merged from: //branches/donutburger/...

Automated import of CL 144205
2009-04-02 10:30:39 -07:00
Nick Pelly
0827c81466 AI 144151: am: CL 144150 Fix heap corruption.
Take mutex in close(), and skip write path after turning bluetooth off.
  Original author: npelly
  Merged from: //branches/cupcake/...

Automated import of CL 144151
2009-04-02 01:21:13 -07:00
The Android Open Source Project
caee1703fe Merge commit 'goog/readonly-p4-master' 2009-03-31 21:34:25 -07:00
Eric Laurent
d3b4d0cfc1 AI 143785: am: CL 143775 am: CL 143620 Attempt for fixing crash in AudioFlinger::MixerThread::dumpTracks() seen in bug report for issue 1747119.
AudioFlinger::MixerThread::dumpTracks() was reading mTracks[] vector instead of mActiveTracks[] when dumping active tracks.
  Original author: elaurent
  Merged from: //branches/cupcake/...
  Original author: android-build
  Merged from: //branches/donutburger/...

Automated import of CL 143785
2009-03-31 14:34:35 -07:00