139 Commits

Author SHA1 Message Date
Jamie Gennis
b0ba48c95e Add getTransformMatrix to the SurfaceTexture API.
Change-Id: Icd11ed4982220be9d08b00498aef02531610ce1f
2011-01-12 11:28:38 -08:00
Jamie Gennis
6714efc5e0 Add the SurfaceTexture java class.
This class exposes to Java the application-side interface to the
SurfaceTexture C++ class.

Change-Id: I0dba42aad90257c7adbde6fa362658c0717b70d0
2011-01-06 16:05:14 -08:00
Romain Guy
a9ebfa6bcc Keep a reference to the local matrix.
Bug #3299324

This is needed for ADT, which does not rely on Skia's reference counting
to correctly keep track of the native objects.

Change-Id: Ia2fc5c1ec2b80bad226bc549fefc6bb064784609
2011-01-04 15:02:59 -08:00
Carl Shapiro
12d81c49a0 Fix a constructor declaration to match its definition.
The second argument of the JavaPixelAllocator constructor was
eliminated by an earlier change but the class definition was not
updated to match that edit.

Change-Id: I27af0cc52c748cfdec02eb4edcf512dd13f72567
2010-12-17 18:36:52 -08:00
Carl Shapiro
2118b25ad4 Eliminate tracked allocations and the inNativeAlloc option.
Change-Id: Ic10b2b41a26925d799e5d1e50be77fc480ec0f17
2010-12-17 18:03:38 -08:00
Patrick Dubroy
a2f0e2d6b7 Allow a JNI local ref to be passed directly into globalRef().
Change-Id: If3063e88ec1eba7a13c983f5f71be6a2d84c4d60
2010-12-15 15:05:47 -08:00
Patrick Dubroy
afde46ed00 Turn fatal assertion in decodeRegion into a warning. 2010-12-15 12:08:39 -08:00
Patrick Dubroy
e4ac2d6b57 Allocate bitmap backing buffers in the Java heap.
Change-Id: I60f6ccff13357c1c518e9d56b02fe0171637edd1
2010-12-14 16:50:50 -08:00
Jack Palevich
dee4cb07a3 Avoid SIGSEGV in Bitmap_writeToParcel.
SkBitmap::getPixels() can return NULL. The rest of the JNI Bitmap
code treats this NULL as if the SkBitmap has transparent black
pixels. Bitmap_writeToParcel now does the same.

Change-Id: I5e70b42b3d22a8aea898ce342e590000325bd0f9
2010-12-13 17:21:12 -08:00
Chet Haase
decc8cd41e Add ability to reuse bitmaps when decoding PNG content
Change-Id: Ic74b62c6280954ff80bcf64f3989a36c7c0b5615
2010-12-10 16:56:53 -08:00
Chet Haase
37f74cad46 Add ability to reuse bitmaps when loading new content
Change-Id: Ic5f5f40ee39787403977fb372b335dc21cf07243
2010-12-09 15:07:39 -08:00
Kenny Root
ddb76c4644 Change assets to use 64-bit API
The asset system and supporting libraries were using off_t instead of
off64_t to access files larger than 2GB (32-bit signed). This change
replaces all off_t with off64_t and lseek64.

There is a new utils/Compat.h added for Mac OS compatibility.

Also fixed some size-related compiler warnings.

Bug: 3205336
Change-Id: I9097b3cb7a602e811fe52f245939d8975da55e9e
2010-12-08 11:21:30 -08:00
Wei-Ta Chen
953f9094a2 Add inPreferQualityOverSpeed into BitmapFactory.Options.
The new field allows a developer to use a more accurate by
slightly slower IDCT method in JPEG decode. This in turns improves the
quality of the reconstructed image.

The field by default is not set and thus does not affect existing
applications.

Bug: 3238925
Change-Id: I93d55b7226e47a43e639325cd1a677694d6f2ee4
2010-12-06 14:24:51 -08:00
Romain Guy
fe48f65922 Free resources only from the GL context thread.
Bug #3179882

Resources were freed following garbage collections on a worker thread.
This worker thread had no EGL context, which would cause the renderer
to incorrectly assume that the memory was liberated.

Change-Id: Ifdb51f94ddf42641e8654522787bfac532976c7c
2010-11-11 15:36:56 -08:00
Bryan Mawhinney
2a3d754549 Avoid copying byte arrays when just decoding bounds.
Currently, if a caller specifies both "purgeable" and "just decode
bounds" options when passing a byte array to decode, we create an
unnecessary copy of the byte array.  This is probably not common,
but we may as well avoid the copy.

Change-Id: I27e573b0e1fb8f8516729882a84efa02b6da08a5
2010-11-03 17:23:57 +00:00
Chet Haase
ad93c2bb63 Optimizing ColorFilter in display lists
Change-Id: Ie4d5e5b0bc45e0ce47bba144049303c270762e54
2010-10-26 12:52:03 -07:00
Chet Haase
d98aa2de9a DisplayList optimizations and fixes.
We now use a copy of SkPaint objects to avoid having it changed from under us.
We reuse copies that have not changed. We also copy the SkMatrix every time to
avoid the same problem.

Change-Id: If3fd80698f2d43ea16d23302063e0fd8d0549027
2010-10-26 06:54:55 -07:00
Wei-Ta Chen
50db92c452 Merge "Fix 3122139, where previewing an attachment for the second time will fail." 2010-10-22 11:22:59 -07:00
Chet Haase
27f0b17d85 Fix native resource leak when OpenGL renderer is not being used.
Native resources (bitmaps, matrices, paints, shaders) are shared when display lists
are used, and a refcounting system is in place to take care of disposing when all
clients are finished with them. But the cache where these refcounts are tracked is
not enabled when the Open GL renderer is not being used. This results in the native
destructors not being called, and the resources are leaked.

Change-Id: Ic7aeb55e4636dcad229846601407e596160346e6
2010-10-22 08:57:48 -07:00
Wei-Ta Chen
58c1579ce2 Fix 3122139, where previewing an attachment for the second time will
fail.

Use AutoFDSeek to mark and restore the position before we read data from
the descriptor.

Change-Id: I3d4f012dce486e19b113bc90a98b94031cfa8195
2010-10-21 23:40:12 -07:00
Chet Haase
5c13d89c13 Optimizing display lists by referencing pointers to resources instead of copying them
Change-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a
2010-10-21 12:02:42 -07:00
Bjorn Bringert
c9332fa3e9 Delete unused WebView drag tracking code
This also removes android.graphics.utils.BoundaryPatch
which was only used by the Browser for the unused drag
tracking (and by a demo app that I'm also removing).

Change-Id: I48253ae005ab11cb4c70d132bc1ea4f2692e2bd2
2010-10-14 09:39:25 +01:00
Jeff Brown
20e987bfc3 Add MotionEvent Matrix transformations.
Fixed issued in ViewGroup's transformation of MotionEvents to ensure
that the entire historical trace is transformed, not just the current
pointer.

Simplified the code in ViewGroup for splitting events across Views.
The new code also handles the case where some pointers are dispatched
to the ViewGroup in addition to its children whereas the previous
code would drop some pointers on the floor.

Change-Id: I56ac31903e1de8a9c376d9c935b7217b0c42d93e
2010-09-30 11:52:48 -07:00
Owen Lin
e224fabb2c Fix segfault when tring to throw IOException.
Change-Id: I530cc4409ba4ca17cec933afad077c5f60ba554f
2010-09-30 16:56:03 +08:00
Owen Lin
0ab9851308 Fix a initialization bug in BitmapRegionDecoder.
Change-Id: I6c1151fd34970a84d4de52d664d9a5dc464892c5
2010-09-29 23:12:44 +08:00
Wei-Ta Chen
a23cdda0a5 am ac487f70: am 6b849e21: Unhide BitmapRegionDecoder.
Merge commit 'ac487f708f7b58dbd4f3021b520c6ed5975daebe'

* commit 'ac487f708f7b58dbd4f3021b520c6ed5975daebe':
  Unhide BitmapRegionDecoder.
2010-09-22 23:06:55 -07:00
Wei-Ta Chen
6b849e2123 Unhide BitmapRegionDecoder.
1. Rename LargeBitmap to BitmapRegionDecoder
2. Move the instantiations of BitmapRegionDecoder out of BitmapFactory.
3. Remove the use of MemoryFile in BitmapRegionDecoder, since MemoryFile's API had been modified in master. Otherwise, the change will break the master build.
4. Move AssetStreamAdaptor, AutoFDSeek and nullObjectReturn to Utils.h because BitmapFactory.cpp and BitmapRegionDecoder.cpp both need to use these utility functions.

Most of the modifications, except for (2) and (3), were reviewed in https://android-git.corp.google.com/g/#change,64716 .
However, that change broke the master build due to (3) and was reverted eventually.
So, instead of withdrawing this change and waiting for that change to be checked in again, I merge the two changes into one.

Change-Id: I2202c0fbbbd6d6676bbd9637e690023ea4099c40
2010-09-23 13:56:52 +08:00
Romain Guy
ddb80bebb0 Add support for circular gradients to the GL renderer.
This change also adds full support for local transformation matrices on
sweep and radial gradients.

Change-Id: Id8773bc0766575190e3f3d51984fc5e57b266c3f
2010-09-21 16:48:50 -07:00
Romain Guy
ee916f14cb Add support for SweepGradient in the GL renderer.
Change-Id: I7aa397ed4e34655ead9ba1f5b4ce087665e0f022
2010-09-20 17:54:17 -07:00
Joseph Wen
94b19d3706 am 94db0238: am 219eb7ec: Merge "Fix bug in JNI BitmapFactory" into gingerbread
Merge commit '94db0238a3b6cba3cbf0e037af74e898a4741204'

* commit '94db0238a3b6cba3cbf0e037af74e898a4741204':
  Fix bug in JNI BitmapFactory
2010-09-10 02:39:10 -07:00
Joseph Wen
219eb7ec84 Merge "Fix bug in JNI BitmapFactory" into gingerbread 2010-09-10 02:32:05 -07:00
Joseph Wen
2dcfbefbbe Fix bug in JNI BitmapFactory
In nativeCreateLargeBitmapFromFileDescriptor() if the file descriptor
can not be rewinded isShareable should be set to false.

Change-Id: I7dd545c9d52d21c226e11b8921e35a1d9bba9515
2010-09-10 17:24:15 +08:00
Romain Guy
9584a542e3 Merge "Purge Skia objects from GL caches as needed." 2010-09-08 18:06:11 -07:00
Romain Guy
a2341a9f6a Purge Skia objects from GL caches as needed.
Change-Id: I754c671cf790ad5ae8bf047ad328034217da4ecc
2010-09-08 18:04:33 -07:00
Romain Guy
53e7ae9065 Merge "Fix possible infinite loop when purging textures." 2010-09-08 15:16:13 -07:00
Romain Guy
9aaa8269a3 Fix possible infinite loop when purging textures.
Change-Id: Ib05b398ae03e734da2dab0496df416fed4570b1c
2010-09-08 15:15:43 -07:00
Elliott Hughes
cfa5903926 am 664c48e9: am 4c7d3f28: Merge "Remove dead code: NIOBuffer." into gingerbread
Merge commit '664c48e991a70d07646d54125e97f579f3a33be4'

* commit '664c48e991a70d07646d54125e97f579f3a33be4':
  Remove dead code: NIOBuffer.
2010-09-08 10:38:41 -07:00
Wei-Ta Chen
7b29804ba2 am 8fc6f8b2: am 1b214be9: Merge "Revert "Rename LargeBitmap to BitmapRegionDecoder for having a better API."" into gingerbread
Merge commit '8fc6f8b2152564cab6ede025644f9bc3ee61ce16'

* commit '8fc6f8b2152564cab6ede025644f9bc3ee61ce16':
  Revert "Rename LargeBitmap to BitmapRegionDecoder for having a better API."
2010-09-07 22:10:58 -07:00
Wei-Ta Chen
340ce75b44 Revert "Rename LargeBitmap to BitmapRegionDecoder for having a better API."
This reverts commit 50ba3d2c09a9131f3578d271adf2bc8258ca1742.
2010-09-08 10:44:21 +08:00
Wei-Ta Chen
50cb7dc458 am a295a390: am b356f8ac: Merge "Rename LargeBitmap to BitmapRegionDecoder for having a better API." into gingerbread
Merge commit 'a295a3908befeb9dd30203c612d95411d68492ed'

* commit 'a295a3908befeb9dd30203c612d95411d68492ed':
  Rename LargeBitmap to BitmapRegionDecoder for having a better API.
2010-09-07 18:52:21 -07:00
Elliott Hughes
edf7223bc2 Remove dead code: NIOBuffer.
Working on speeding up our NIO implementation, I came across this suboptimal
code. Happily, it turns out to be unused.

Bug: 2935622
Change-Id: I07ae6e573d63e439f496d55af215b34598d8258a
2010-09-07 15:42:23 -07:00
Wei-Ta Chen
50ba3d2c09 Rename LargeBitmap to BitmapRegionDecoder for having a better API.
Move AssetStreamAdaptor, AutoFDSeek and nullObjectReturn to Utils.h because
BitmapFactory.cpp and BitmapRegionDecoder.cpp both need to use these utility functions.

Change-Id: I3e60c7fe4abd0289e1384e69a08fd20fe6fb0e10
2010-09-07 21:02:13 +08:00
Wei-Ta Chen
ce53603a4f am 9f7257f0: am 8d124f70: Merge "Fix a bug, where one thread is using JNIEnv associated with another thread." into gingerbread
Merge commit '9f7257f0a14cd17d8b55bc3bd1584dac2f9dd1b2'

* commit '9f7257f0a14cd17d8b55bc3bd1584dac2f9dd1b2':
  Fix a bug, where one thread is using JNIEnv associated with another thread.
2010-08-21 09:39:51 -07:00
Romain Guy
18ef37258d DO NOT MERGE. Fix the build.
Change-Id: I3322faa948af015f7d8df31b9a4c281f5311f067
2010-08-19 15:15:19 -07:00
Romain Guy
4f0a8df9fe Fix the build.
Change-Id: I71e77cb3c124b31b81d952dc3897ebc414a1f701
2010-08-19 15:10:54 -07:00
Romain Guy
288471d8a5 DO NOT MERGE. Load assets in place instead of deferring until draw.
Before this change, all framework assets would be decoded at drawing time
outside of zygote. This was forcing all apps to re-decode the assets and
zygote to keep an in-memory copy of each asset. This behavior is now
opt-in by setting the inPurgeable flag on BitmapFactory.Options.

Change-Id: Ief823139163d8071b8ee1267746622faf52eb8ec
2010-08-19 15:02:31 -07:00
Romain Guy
207b3ab604 Load assets in place instead of deferring until draw.
Before this change, all framework assets would be decoded at drawing time
outside of zygote. This was forcing all apps to re-decode the assets and
zygote to keep an in-memory copy of each asset. This behavior is now
opt-in by setting the inPurgeable flag on BitmapFactory.Options.

Change-Id: Ic703f57adb26b2a701ecff0a653d35a93e26d47c
2010-08-19 14:41:16 -07:00
Wei-Ta Chen
291303ba3d Fix a bug, where one thread is using JNIEnv associated with another thread.
We see abort messages like this when using JavaPixelAllocator and JavaMemoryUsageReporter.
W/dalvikvm(  680): JNI WARNING: threadid=2 using env from threadid=10
W/dalvikvm(  680):              in Landroid/graphics/LargeBitmap;.nativeClean (I)V (CallVoidMethodV)

To fix it, we keep JavaVM, rather than JNIEnv, in JavaPixelAllocator and JavaMemoryUsageReporter,
because JavaVM allows us to get the JNIEnv corresponds to the current thread.

Change-Id: Ibd4b394a53dd3fdccc5a442eeb0dedf836479575
2010-08-19 12:21:44 +08:00
Joseph Wen
1b10d3d235 am 81dcea60: am f1f48bc7: Do JPEG tile-based decoding.
Merge commit '81dcea6093dfcdadd52982505249a5eacf47a81b'

* commit '81dcea6093dfcdadd52982505249a5eacf47a81b':
  Do JPEG tile-based decoding.
2010-08-17 00:35:06 -07:00
Joseph Wen
f1f48bc7f2 Do JPEG tile-based decoding.
Change-Id: I5c1b4ac3c02eb4350ef0ba9a7877b22cfd730cfb
2010-08-17 14:34:02 +08:00