Commit Graph

139 Commits

Author SHA1 Message Date
Mathias Agopian
446ff92038 don't use a 1/4th of the screen size texture for the dim layer
we can't use a texture of 1/4th of the screen for the dim layer, because the mdp internal input resultion is alwyas integers and for very small blits of a couple pixels the scale factor can get way out of range, for instance for a 7 pixels source, the scale factor would be either 7 (7/1) or 3.5 (7/2) instead of 4 (7/1.75). This caused the mdp to fail in some cases and revert to software. we now always use a texture of the actual screen size, so the problem will never happen. This burns 300KB of pmem instead of 21KB. On devices with a larger screen we might want to use a smaller texture and tile it by hand.
2009-06-29 17:32:20 -07:00
Mathias Agopian
a8d44f75e1 fix [1947273] the DimLayer causes the whole screen to update during transactions 2009-06-29 14:44:11 -07:00
Mathias Agopian
6b3287b5d4 fix [1947273] the DimLayer causes the whole screen to update during transactions 2009-06-28 02:54:16 -07:00
Mathias Agopian
b8a5560e13 fix an update bug with SHOW_UPDATE debug feature. Fix a problem with the debug binder codes too 2009-06-26 19:06:36 -07:00
Mathias Agopian
d512f238a6 add support for out-of-range copybit scaling. camera capture is in color again 2009-06-25 17:41:12 -07:00
Mathias Agopian
958b3cac99 use 1/16 the size (20KB) for the dim texture in the copybit/msm case 2009-06-25 16:21:32 -07:00
Mathias Agopian
240c9fe59e use copybit for eglSwapBuffers() copy-back operations 2009-06-25 15:39:25 -07:00
Mathias Agopian
2ab55a4e31 make use of new eglGetRenderBufferANDROID extension to clean-up a bit a few hacks added recently 2009-06-25 00:09:27 -07:00
Mathias Agopian
5911aa9510 copybit now uses a native_handle_t* instead of a fd/offset 2009-06-24 20:39:16 -07:00
Mathias Agopian
69029eb5ab hack copybit back in for video playback on msm7k. we have h/w accelerated video again 2009-06-24 20:39:16 -07:00
Mathias Agopian
2e12324581 fix a bug causing push-buffer surfaces' identity to be garbage, which resulted in some attributes (size/pos) to fail to be set 2009-06-23 20:06:46 -07:00
Mathias Agopian
1fed11c86a checkpoint. bring back video/camera 2009-06-23 18:08:22 -07:00
Mathias Agopian
cca6b4267d Merge commit 'goog/master' into merge_master 2009-06-19 17:41:14 -07:00
Mathias Agopian
f9d932774e fix a memory corruption where a SF Client could be used after it's been destroyed 2009-06-19 17:00:27 -07:00
Mathias Agopian
cd8c5e29c2 release the last reference to surfaces explicitely instead of letting it go implicitely when the message is destroyed 2009-06-19 16:24:02 -07:00
Android (Google) Code Review
05915a4d9d am c6282977: Merge change 4718 into donut
Merge commit 'c6282977180c220b1a68c23a328e7d75a11963ab'

* commit 'c6282977180c220b1a68c23a328e7d75a11963ab':
  Fix sim-eng build and simplify previous lcd-density related patch
2009-06-18 19:46:59 -07:00
David 'Digit' Turner
ae71accf63 Fix sim-eng build and simplify previous lcd-density related patch 2009-06-19 04:41:12 +02:00
Mathias Agopian
945ebbfd3d implement dimming with a texture on msm7k so it uses copybit 2009-06-18 18:48:39 -07:00
Android (Google) Code Review
e2095d0a1c am b1cdb648: Merge change 4565 into donut
Merge commit 'b1cdb64877ebd3b8c5182913ff02edd8b54a6982'

* commit 'b1cdb64877ebd3b8c5182913ff02edd8b54a6982':
  Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density
2009-06-18 15:43:28 -07:00
David 'Digit' Turner
694e10ba87 Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density
ro.sf.lcd_density is usually defined in the build.prop file which is parsed by init
before anything else. Since its name begins with "ro.", this property is write-once
and cannot later be modified, e.g. in /system/etc/init.goldfish.sh.

In other words, you cannot use "emulator -prop ro.sf.lcd_density=<value>", since
it is impossible to override the value defined in build.prop

This patch modifies the system to recognize "qemu.sf.lcd_density" as an override
value, which can be set with "emulator -prop qemu.sf.lcd_density=<value>", forcing
a specific density.

A later patch will allow the emulator to automatically set this property depending
on AVD hardware configuration settings.
2009-06-19 00:17:31 +02:00
Mathias Agopian
375f56363a new Permission class used to improve permission checks speed (by caching results) 2009-06-15 21:56:51 -07:00
Mathias Agopian
5e78e09651 protect ANDROID specific egl extension with #define 2009-06-11 17:19:54 -07:00
Mathias Agopian
3d57964a81 fix a bunch of problems with destroying surfaces.
now, all destruction path, go through the purgatory which is emptied when ~ISurface is called, but we also make sure to remove the surface from the current list from there (in case a client forgot to request the destruction explicitely).
2009-06-04 18:46:21 -07:00
Mathias Agopian
e92c713cb6 when looking for an EGLConfig always pick the first one that matches, not the last one 2009-06-03 14:49:08 -07:00
Android (Google) Code Review
c20e4ebef2 am b61ae351: Merge change 2747 into donut
Merge commit 'b61ae351256518add7bcb40e0bf18337dd87195c'

* commit 'b61ae351256518add7bcb40e0bf18337dd87195c':
  log the geomerty of surfaces causing an out of memory in SurfaceFlinger.
2009-05-29 14:57:33 -07:00
Mathias Agopian
3c4d8c83da log the geomerty of surfaces causing an out of memory in SurfaceFlinger. 2009-05-29 14:55:06 -07:00
Mathias Agopian
310f8da0c3 merge master to master_gl 2009-05-22 02:16:08 -07:00
Android (Google) Code Review
bdbf6b094d am 69a6c3eb: Merge change 2292 into donut
Merge commit '69a6c3ebd46a8de0e896747757f364322c12608d'

* commit '69a6c3ebd46a8de0e896747757f364322c12608d':
  split boot animation out of SurfaceFlinger
2009-05-21 19:36:53 -07:00
Mathias Agopian
a1ecca920e split boot animation out of SurfaceFlinger
Conflicts:

	data/etc/platform.xml
2009-05-21 19:21:59 -07:00
Mathias Agopian
c5b2c0bf80 move libbinder's header files under includes/binder 2009-05-20 12:55:03 -07:00
Mathias Agopian
208059f67e checkpoint: split libutils into libutils + libbinder 2009-05-20 12:55:02 -07:00
Mathias Agopian
20f68782a4 Region now has its own implementation instead of relying on SkRegion, which allows us to break libui's dependency on libcorecg. 2009-05-17 23:34:16 -07:00
Mathias Agopian
1e16b13857 add support for update-on-demand in SurfaceFlinger 2009-05-07 17:40:23 -07:00
Mathias Agopian
e6bf8b32b6 fix EGL extension string names 2009-05-07 15:07:52 -07:00
Mathias Agopian
df3ca30bf6 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
Mathias Agopian
7189c0054e 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
Mathias Agopian
e71212ba53 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
b2dd686d06 minor clean-up in FramebufferNativeWindow 2009-05-04 19:38:43 -07:00
Mathias Agopian
0926f50664 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
7be3e5d2d8 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
3f54b2ae7e 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
Mathias Agopian
b6683b58a8 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
2b42fa7fdd fix 1803886 android15 Translucent GLSurfaceView demo does not display properly 2009-04-27 18:50:06 -07:00
Mathias Agopian
550b79f449 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
cbc93ca800 get rid of the "show fps" debug option 2009-04-24 16:31:11 -07:00
Mathias Agopian
0aa758d64a 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
f1d8e87b09 a brand new MessageQueue for SurfaceFlinger. 2009-04-24 16:22:36 -07:00
Mathias Agopian
9a11206fe7 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
9f88afb013 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
01b766839e 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
62b74444be 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
4243e66621 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
8b765b7f5e more debugging tools around BufferMapper 2009-04-10 20:34:46 -07:00
Mathias Agopian
0308739d0b Merge commit 'goog/master' into master_gl
Conflicts:
	libs/utils/Parcel.cpp
2009-04-10 14:36:33 -07:00
Mathias Agopian
076b1cc3a9 Integrate from //sandbox/mathias/donut/...@145728
SurfaceFlinger rework for new EGL driver model support.
2009-04-10 14:24:30 -07:00
Mathias Agopian
253ed06781 AI 143321: am: CL 143172 am: CL 142875 [1732012] for some reason these files didn't go through in the preview check-in.
Original author: mathias
  Merged from: //branches/cupcake/...
  Original author: android-build
  Merged from: //branches/donutburger/...

Automated import of CL 143321
2009-03-27 18:12:49 -07:00
Mathias Agopian
c08731e756 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
2009-03-27 18:11:38 -07:00
Mathias Agopian
0d1318b974 AI 143309: am: CL 143160 am: CL 142856 new-new-new-new rotation animation. it may still change one more time.
Original author: mathias
  Merged from: //branches/cupcake/...
  Original author: android-build
  Merged from: //branches/donutburger/...

Automated import of CL 143309
2009-03-27 17:58:20 -07:00
Mathias Agopian
816c5e2314 AI 143172: am: CL 142875 [1732012] for some reason these files didn't go through in the preview check-in.
Original author: mathias
  Merged from: //branches/cupcake/...

Automated import of CL 143172
2009-03-27 16:13:24 -07:00
Mathias Agopian
24fd77d440 AI 143171: am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor
Original author: mathias
  Merged from: //branches/cupcake/...

Automated import of CL 143171
2009-03-27 16:10:37 -07:00
The Android Open Source Project
06ee417bc5 Merge commit 'korg/cupcake'
Conflicts:
	core/java/android/webkit/WebView.java
	core/java/android/widget/TwoLineListItem.java
	preloaded-classes
2009-03-27 15:38:40 -07:00
Mathias Agopian
ecbeaa0cf1 AI 143160: am: CL 142856 new-new-new-new rotation animation. it may still change one more time.
Original author: mathias
  Merged from: //branches/cupcake/...

Automated import of CL 143160
2009-03-27 15:36:09 -07:00
Mathias Agopian
192f79fe71 Automated import from //branches/cupcake/...@142875,142875 2009-03-25 23:26:39 -07:00
Mathias Agopian
ceff6e1874 Automated import from //branches/cupcake/...@142873,142873 2009-03-25 23:18:56 -07:00
Mathias Agopian
262453cecb Automated import from //branches/cupcake/...@142856,142856 2009-03-25 21:42:35 -07:00
Mathias Agopian
7c143aab44 Automated import from //branches/master/...@142447,142447 2009-03-24 22:50:50 -07:00
Mathias Agopian
b535e58351 Automated import from //branches/master/...@142432,142432 2009-03-24 22:49:21 -07:00
Mathias Agopian
74c770be33 Automated import from //branches/donutburger/...@142446,142446 2009-03-24 22:43:22 -07:00
Mathias Agopian
6219dd7d3a Automated import from //branches/donutburger/...@142430,142430 2009-03-24 22:42:15 -07:00
Mathias Agopian
e74be0afd9 Automated import from //branches/master/...@141504,141504 2009-03-24 20:25:55 -07:00
Mathias Agopian
3df5e433a2 Automated import from //branches/donutburger/...@141502,141502 2009-03-24 20:25:29 -07:00
Mathias Agopian
0348218e93 Automated import from //branches/cupcake/...@142445,142445 2009-03-24 19:43:24 -07:00
Mathias Agopian
2ed5f739eb Automated import from //branches/cupcake/...@142427,142427 2009-03-24 19:41:37 -07:00
Mathias Agopian
38c89491e4 Automated import from //branches/donutburger/...@140807,140807 2009-03-24 18:34:22 -07:00
Mathias Agopian
7a7af5c866 Automated import from //branches/master/...@140808,140808 2009-03-24 18:34:16 -07:00
The Android Open Source Project
0c2bcbc6cc auto import from //branches/cupcake_rel/...@141571 2009-03-19 23:08:54 -07:00
Jean-Baptiste Queru
732ca39b70 Merge commit 'remotes/korg/cupcake' into merge
Conflicts:
	core/java/android/view/animation/TranslateAnimation.java
	core/jni/Android.mk
	core/res/res/values-en-rGB/strings.xml
	libs/audioflinger/AudioFlinger.cpp
	libs/surfaceflinger/LayerScreenshot.cpp
	packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
2009-03-18 11:33:14 -07:00
The Android Open Source Project
bcef13b666 auto import from //branches/cupcake/...@137873 2009-03-11 12:11:56 -07:00
The Android Open Source Project
edbf3b6af7 auto import from //depot/cupcake/@135843 2009-03-03 19:31:44 -08:00
The Android Open Source Project
d5193d9394 auto import from //depot/cupcake/@135843 2009-03-03 18:28:45 -08:00
Adrian Taylor
f18936cbf4 Fixing LayerScreenshot bitmap config value. 2009-03-02 12:11:47 -08:00
The Android Open Source Project
ac65e0b172 auto import from //branches/cupcake/...@131421 2009-02-13 12:57:50 -08:00
The Android Open Source Project
a6938bab1f auto import from //branches/cupcake/...@130745 2009-02-10 15:44:00 -08:00
Jean-Baptiste Queru
a837ba778f Add missing <limits.h> include
This should fix the build for gcc 4.3.2
2009-01-26 12:11:20 -08:00
The Android Open Source Project
5f78a48bb8 auto import from //branches/cupcake/...@127101 2009-01-20 14:03:58 -08:00
The Android Open Source Project
8a7a67538a auto import from //branches/cupcake/...@126645 2009-01-15 16:12:10 -08:00
The Android Open Source Project
276293246e auto import from //branches/cupcake/...@125939 2009-01-09 17:51:23 -08:00
The Android Open Source Project
e09fd9e819 Code drop from //branches/cupcake/...@124589 2008-12-17 18:05:43 -08:00
The Android Open Source Project
7c1b96a165 Initial Contribution 2008-10-21 07:00:00 -07:00