Commit Graph

353 Commits

Author SHA1 Message Date
tedbo
0694cfe49a Merge "Add method to create a ParcelSurfaceTexture from android.view.Surface." 2011-06-23 14:45:30 -07:00
Jamie Gennis
b950b8e23e Merge "Fix the issue where onFrameAvailable is not triggered if SurfaceTexture is in sync mode." 2011-06-23 13:02:40 -07:00
tedbo
4e8a5c922c Add method to create a ParcelSurfaceTexture from android.view.Surface.
Change-Id: I05e343ab7e327478f60322af9373574b70c148f5
2011-06-22 16:18:09 -07:00
Chet Haase
ad4f70306b Fix flashing artifacts caused by invalidation bugs
Therea re 2 fixes here:
- We sometimes cleared a flag in ViewAncestor too soon that controlled
how invalidated areas were redrawn (related to whether the invalidates
happened on opaque views or not).
- TransitionDrawable was always setting/restoring alpha values on its
drawables every time it was drawn. setAlpha on BitmapDrawable causes
an invalidation, so essentially this was an infinite invalidation/redrawing
loop. The fix was to notice when the animation was done and to simply
draw the appropriate drawable[s].

Change-Id: I1849a5a909b0039a0e9bce0aa3cfc33c50f8f854
2011-06-22 15:53:53 -07:00
Grace Kloba
925bcaabde Fix the issue where onFrameAvailable is not triggered if SurfaceTexture is in sync mode.
If there is more frame after updateTexImage, trigger the listener again.

Change-Id: I1415ae9a914cc8bb139cb369464b1f6a2aa24058
2011-06-22 00:56:54 -07:00
Romain Guy
e5e0c50f7d Properly refcount SurfaceTexture in the JNI layer.
Change-Id: I4b4c8020c13b8d6ce0d302fe42410033bf5785a6
2011-06-15 16:14:26 -07:00
Fabrice Di Meglio
c0053223be Add View.getResolvedLayoutDirection()
- update Callback2 interface
- update Gravity.getAbsoluteGravity() and Gravity.apply() to be more generic
 by changing "boolean isRtl" parameter to "int layoutDirection"
- fix BiDiTests for RTL FrameLayout

Change-Id: I97bb456c22d5fd3ecb34f08564ce4dbed37e7459
2011-06-14 16:16:39 -07:00
tedbo
050316184b 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
2011-06-09 11:59:23 -07:00
Chet Haase
f5534a0785 Fixes for AnimationDrawable
Set up AnimationDrawable with an initial frame when it is
constructed from code (via addFrame()). This is equivalent to
what is done when it is constructed via xml resources.

Change-Id: I86784a241268aa2d03af8edecbc80a7cc3548e19
2011-05-31 07:22:51 -07:00
Fabrice Di Meglio
6a03640539 Add support for Gravity BEFORE and AFTER
- update layouts
- add Callback2 for RTL aware Drawable
- add unit tests

Change-Id: Ic64d0291e262170aff7297c6580b0b422eaa8d89
2011-05-27 11:23:15 -07:00
Romain Guy
8f0095cd33 Allows to render with an OpenGL context inside a TextureView.
Change-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7
2011-05-02 18:32:29 -07:00
Conley Owens
e7cb25916c am 1eb31b43: am 718516f3: am 9fd8e057: Merge "Fix memory leak of SkMovie class"
* commit '1eb31b434fdc325c55b65ecf1783c63b2fdfa669':
  Fix memory leak of SkMovie class
2011-05-02 10:11:52 -07:00
Conley Owens
1eb31b434f am 718516f3: am 9fd8e057: Merge "Fix memory leak of SkMovie class"
* commit '718516f3b73468c480ef8d2283a1c80a6223658d':
  Fix memory leak of SkMovie class
2011-04-29 17:15:09 -07:00
Conley Owens
17f83df960 am 7dcdfd79: am f26ec38c: am 501f7bca: Merge "Eliminating dead logic - bitmap state simply cannot be null here."
* commit '7dcdfd7988d1e57c7a705a2d7294e8bfa2b8afc9':
  Eliminating dead logic - bitmap state simply cannot be null here.
2011-04-29 15:11:45 -07:00
Conley Owens
7dcdfd7988 am f26ec38c: am 501f7bca: Merge "Eliminating dead logic - bitmap state simply cannot be null here."
* commit 'f26ec38c344af8cf91575b461028a3033b940d49':
  Eliminating dead logic - bitmap state simply cannot be null here.
2011-04-29 14:57:18 -07:00
Conley Owens
9fd8e0579f Merge "Fix memory leak of SkMovie class" 2011-04-29 10:00:00 -07:00
Romain Guy
e1c6ff4b91 Make setGradientCenter/Radius work.
The previous implementation would not rebuild the gradient shader
when programmatically changing the shader's properties. Also fixes
the documentation since the gradient center does affect linear
gradients.

Change-Id: I5387188484b862f6835b0da9042b25032e55e792
2011-04-26 11:50:17 -07:00
Romain Guy
ee6d5cfdff Copy the solid color when mutating a gradient drawable.
Change-Id: If3eed36b81f54bb5a56eab7784feda3e3786f8fc
2011-04-26 11:40:14 -07:00
Romain Guy
4a123c4d69 Allow bitmap filtering on NinePatchDrawable.
There's no reason to not allow it anymore.

Change-Id: Id1881784e6abb49f1965af6595a77391b88b426f
2011-04-26 11:23:08 -07:00
Fabrice Di Meglio
0a1413e4bf Clean getTextRunAdvances() APIs
- remove ICU reference in API names
- use a "reserved" int parameter to pass either "0" for Harfbuzz or "1" for "ICU"

Change-Id: I88b4f76feafd203a6999cd7349402fa36a9a4b2a
2011-04-21 17:36:26 -07:00
Dianne Hackborn
44bc17c6b5 Rework display size access.
Applications now get the display size from the window manager.  No
behavior should be changed yet, this is just prep for some real
changes.

Change-Id: I2958a6660895c1cba2b670509600014e55ee9273
2011-04-21 15:17:52 -07:00
Jozef BABJAK
e42143aa57 Eliminating dead logic - bitmap state simply cannot be null here.
Change-Id: I33fdf650b06242efa22ca30b3f7252f6854b42f6
2011-04-19 13:24:37 +02:00
Fabrice Di Meglio
fcf2be1846 TextLayoutCache - add glyphs caching
- cache glyphs after Harfbuzz shaping
- use "m" prefix for member variables
- add temporary API for drawing text with glyphs
- update BiDiTest app

Change-Id: I619b3f313b15f010018daad21b3e5e486619b4e4
2011-04-08 14:37:18 -07:00
Fabrice Di Meglio
eee49c699c Fix text redering issue where the text was sometimes truncated
- mostly was visible in Settings apps / Wi-Fi networks summary info for each network
- correctly setup the local SkPaint for advances computation
- improve test app for adding live resizing

Change-Id: Ia031fe1b115b521ba55c7e68f2a26300f02e48ca
2011-03-29 19:44:33 -07:00
Romain Guy
a3cbe69ae6 Merge "Move the drawable state to the correct class. Bug #4170455" 2011-03-29 18:33:12 -07:00
Romain Guy
2660a3ec85 Move the drawable state to the correct class.
Bug #4170455

The state tracking whether the Paint's shader should be rebuilt was kept in the
wrong class. This lead to the Drawable keeping track of the dirty status of the
Paint stored in the ConstantState. This of course does not work properly when
several drawables are inflated form the same ConstantState. This change fixes
the issue by moving the dirty Paint state to the ConstantState class. This is
allowed to work because of the single-thread rule enforced by the UI toolkit.

Change-Id: I9bb31d8e7335d6bb418470b59ae25d9085d7bd23
2011-03-29 18:31:08 -07:00
Brad Fitzpatrick
37c1bbb51a am 8ef609ab: am a4206029: am 5d5a0ca5: Merge "Fixing the wrong link in YuvImage JavaDoc."
* commit '8ef609abe56c9872c93fc304037d1e52d4475e5e':
  Fixing the wrong link in YuvImage JavaDoc.
2011-03-29 08:53:38 -07:00
Brad Fitzpatrick
8ef609abe5 am a4206029: am 5d5a0ca5: Merge "Fixing the wrong link in YuvImage JavaDoc."
* commit 'a4206029cbb8f6c02c47db52f84b7d52e154e35a':
  Fixing the wrong link in YuvImage JavaDoc.
2011-03-29 08:45:20 -07:00
Kimiyoshi Kusaka
08d7778f08 Fix memory leak of SkMovie class
Movie class doesn't have finalize method.
So memory leak of SkMovie class of native Skia occurs when Movie class is released.
I add finalize method to Movie class (Movie.java) and jni destructor method to SkMovie class (Movie.cpp).

Change-Id: I4dae9dd95f128cbfade50bef978b219ba99321dd
2011-03-28 11:58:51 +09:00
Eino-Ville Talvala
a5d42c8578 Merge "NEW_API: Add getTimestamp() to SurfaceTexture." 2011-03-24 15:36:56 -07:00
Romain Guy
ee0c116ab2 Always apply the tile mode.
Bug #4170455

Change-Id: Id537a226a0b59bfa65b54bcea062aa5bf1a730b8
2011-03-24 14:05:06 -07:00
Brad Fitzpatrick
5d5a0ca5eb Merge "Fixing the wrong link in YuvImage JavaDoc." 2011-03-23 12:30:28 -07:00
Fabrice Di Meglio
aa5eb64a0c Merge "Use Harfbuzz instead of ICU4C for computing advances" 2011-03-23 10:56:41 -07:00
Fabrice Di Meglio
9f82b580d7 Use Harfbuzz instead of ICU4C for computing advances
- use Harfbuzz shaper for shaping and getting glyphs
- add test app for showing result of drawText() and drawGlyphs()
- add private API in Canvas and Paint for test app

Change-Id: Ia15be216f8636d2d864066e9b7de2f53008c30f6
2011-03-22 19:36:30 -07:00
Eino-Ville Talvala
e309a0fd2e NEW_API: Add getTimestamp() to SurfaceTexture.
Like getTransformMatrix, getTimestamp provides a timestamp for the
OpenGL texture produced by the latest call to updateTexImage().

Timestamps are measured in nanoseconds, and are monotonically
increasing.  Other properties of the timestamps (zero point,
comparability) depend on the source providing frames to the
SurfaceTexture, and need to be documented by the source.

bug:3300707

Change-Id: I380d94926d0e9f1c77bb5c1576b72d5ef4e2eba1
2011-03-21 15:38:36 -07:00
Eino-Ville Talvala
c5f94d8a47 Add support for timestamps into SurfaceTexture.
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-17 13:10:03 -07:00
Mathias Agopian
58a7775d3e fix YV12 documentation
Change-Id: I9a2022101930721a3b3bacc95b02ca21d05f21bb
2011-03-02 13:51:21 -08:00
Mathias Agopian
525af5d5b0 reformat file, which contained tabs instead of spaces
Change-Id: If26ef8be8c80a7894d256572cb3b9e60742dce57
2011-03-01 14:04:28 -08:00
Jamie Gennis
8588732712 Expand on the SurfaceTexture API docs.
This change adds additional documentation explaining how a
SurfaceTexture should be used in OpenGL ES.  It describes some of the
limitations of using the GL_TEXTURE_EXTERNAL_OES texture target.

Change-Id: I7424c1b422e4f402e87372e8b361391fbec82c5c
2011-02-25 13:34:06 -08:00
Jamie Gennis
dc02e18d15 Revert "Merge "Expand on the SurfaceTexture API docs.""
This reverts commit 069d748da8, reversing
changes made to b607b884bd.
2011-02-24 16:45:21 -08:00
Jamie Gennis
069d748da8 Merge "Expand on the SurfaceTexture API docs." 2011-02-24 14:24:04 -08:00
Glenn Kasten
373ed6fc79 Merge "Bug 3438258 Add SurfaceTexture as MediaPlayer sink" 2011-02-24 12:37:02 -08:00
Romain Guy
47b8adec39 Add a new Camera API to control the camera's location
Change-Id: Id9a082d2def803eb527e1987875e0d8a22c6e8aa
2011-02-23 19:51:42 -08:00
Romain Guy
4a317db43d More documentation for Canvas.drawArc()
Change-Id: I007a1db94306e05cf4e245f876aa1921f518c113
2011-02-23 16:34:21 -08:00
Romain Guy
ed7894352f Add dither XML attribute support to Gradient and ShapeDrawable.
Change-Id: I4b60a0ba6766b7e7b176e78dc7f15f8467e2b890
2011-02-23 15:57:08 -08:00
Glenn Kasten
cc562a3576 Bug 3438258 Add SurfaceTexture as MediaPlayer sink
This change enables the use of a SurfaceTexture in place of a Surface
as the video sink for an android.media.MediaPlayer. The new API
MediaPlayer.setTexture is currently hidden.

This includes:
 - New Java and C++ interfaces
 - C++ plumbing and implementation (JNI, Binder)
 - Stagefright AwesomePlayer and NuPlayer use ANativeWindow
   (either Surface or SurfaceTextureClient)

Change-Id: I2b568bee143d9eaf3dfc6cc4533c1bebbd5afc51
2011-02-23 15:02:56 -08:00
Jamie Gennis
acf33974b3 Expand on the SurfaceTexture API docs.
This change adds additional documentation explaining how a
SurfaceTexture should be used in OpenGL ES.  It describes some of the
limitations of using the GL_TEXTURE_EXTERNAL_OES texture target.

Change-Id: I9d3446a012376166b6c598b827a0aa0e9585d00f
2011-02-23 13:58:44 -08:00
Romain Guy
39c512b623 Don't swap bottom left and bottom right corner radii.
Change-Id: If57b6627f67998edc384de15e3d970f8edf18211
2011-02-23 11:21:39 -08:00
Jesse Wilson
f7f9d9c39d Expose an API to get a bitmap's size in bytes.
Change-Id: I960c3b02b1ba8d3a8d92aaa98955a159e6f3a228
http://b/3184897
2011-02-16 17:50:43 -08:00
Brian Muramatsu
8a9f9d880d Fix Paint#breakText(char[]..) JavaDoc
The JavaDoc says that if the "...count is negative then the
characters before index are measured in reverse order. This
allows for measuring the end of string."

However, the native code doesn't work its way backwards
from the given index when the count is negative. It always
passes Skia the substring starting from index and the
absolute value of count.

Its better to fix the JavaDoc rather than the behavior, since
this API is public and has been this way for some time. It
is also used by TextUtils.ellipsize indirectly, so its best
to avoid breaking that sensitive code.

Change-Id: I8bd51def6ec98251e355370710eb44f58fb737c4
2011-02-16 14:58:45 -08:00