1090 Commits

Author SHA1 Message Date
Chris Craik
86b55c52c7 Fix klp-modular-dev-plus-aosp build
Change-Id: I546dfef29b5875633de18f6a7e3f419a0d012faa
2014-07-01 15:24:37 -07:00
Chris Craik
88b1c9ad87 am e709d53f: am 0d28bb47: Merge "Fix the texture ID reuse issue in HWUI."
* commit 'e709d53ff31c74a6abf2a27350966d18d8dad4f7':
  Fix the texture ID reuse issue in HWUI.
2014-06-16 23:47:34 +00:00
Chris Craik
678886fde5 am b1fc06a4: am 5e7ef948: Merge "hwui: fix possible null pointer de-refrence"
* commit 'b1fc06a4321f13360fcca49bbf87f87f34c22d58':
  hwui: fix possible null pointer de-refrence
2014-06-16 23:47:26 +00:00
Chris Craik
0d28bb47d7 Merge "Fix the texture ID reuse issue in HWUI." 2014-06-16 22:13:20 +00:00
Chris Craik
5e7ef9489f Merge "hwui: fix possible null pointer de-refrence" 2014-06-16 22:13:20 +00:00
Tenghui Zhu
ecae1ffd77 am df36dd20: am 386caf6c: Merge "update parameters in uploadToTexture() for GLES20"
* commit 'df36dd200c55a6ad463b46bab0ffff49d21206ff':
  update parameters in uploadToTexture() for GLES20
2014-06-16 17:18:51 +00:00
jiayuanr
4a473c7d94 Fix the texture ID reuse issue in HWUI.
Issue: When the layer of previous frame is destroyed, it doesn't clear the
texture id in mBoundTextures[mTextureUnit], so in the next frame, if
glGenTexture returns same texture ID of the previous frame,
the new texture is not bound.

CRs-fixed: 671736

Change-Id: Ifc5fd2115fb1863b3c006ab14b0faabeaeb4eab4
2014-06-16 09:29:22 +05:30
Digish Pandya
1fa4cef34a hwui: fix possible null pointer de-refrence
add layer check for  null before de-refrencing it.

issue link: http://code.google.com/p/android/issues/detail?id=61622

Change-Id: I54fc21ec594effcfb1eededd80dd5b0b52645c4c
2014-06-13 17:14:50 +05:30
Lu, Shenghua
c5e0a29541 update parameters in uploadToTexture() for GLES20
Google optimized the uploadToTexture with GLES3.0+,
This allows us to upload a sub-rectangle of texture,
but this has compliance issue with GLES 2.0.

With OpenGL ES 2.0 we need to copy the bitmap in a
temporary buffer if the stride doesn't match the width,
and then upload entire temporary stripes.

Change-Id: I8987cd8347913c61b7fa45bd47be1189aa6bdb05
Signed-off-by: Shenghua Lu <shenghua.lu@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Guobin Zhang<guobin.zhang@intel.com>
2014-06-13 09:42:33 +08:00
Chris Craik
b68f5f0932 am 4d31c547: am ce7fa780: Merge "Fix a resource race bug in PathCache"
* commit '4d31c5474bcc4bcc6a6d8dfe232360dad701a3fc':
  Fix a resource race bug in PathCache
2014-05-30 18:03:32 +00:00
Chris Craik
4d31c5474b am ce7fa780: Merge "Fix a resource race bug in PathCache"
* commit 'ce7fa780cdee2730b570cc34066f15c74d44e6ef':
  Fix a resource race bug in PathCache
2014-05-30 17:59:51 +00:00
yuyang
7061f7d791 Fix a resource race bug in PathCache
When enabled defer rendering, it will do precache for DrawPathOp.
The paint used for creating PathTask in precache just get the address
of mFilteredPaint of OpenGLRenderer. So for the following defer
operation like DrawTextOp has possibility change the mFilteredPaint
by getPaint while another WorkerThread in PathCache is using the paint
which pointed to the same address of mFilteredPaint to generate bitmap.
As a result, it will generate a wrong bitmap for generateTexture in
PathCache. To fix it, do a copy of paint when creating PathTask.

CRs-Fixed: 664244

Change-Id: I5516f5b143458b88d3573d15b7ebb34f688800c7
2014-05-30 08:26:37 +05:30
Chris Craik
3c769ec02b am 00fabcbe: am b1708e9b: Merge "Use alpha channel instead of red in drawCachedGlyphBitmap"
* commit '00fabcbeb035fb513293ea01d245002f40b3234f':
  Use alpha channel instead of red in drawCachedGlyphBitmap
2014-05-19 19:32:38 +00:00
Chris Craik
00fabcbeb0 am b1708e9b: Merge "Use alpha channel instead of red in drawCachedGlyphBitmap"
* commit 'b1708e9b764268a06d91219a5c39ee9efd32ab00':
  Use alpha channel instead of red in drawCachedGlyphBitmap
2014-05-19 19:27:52 +00:00
Digish Pandya
c62c1cc17d Use alpha channel instead of red in drawCachedGlyphBitmap
the correct value to copy in bitmap is alpha component from
the cachebuffer. currently it is offset to red channel if format is
RGBA which is wrong.

this is followup fix for https://android-review.googlesource.com/#/c/93943/

Change-Id: I96b5ba35df5ccaef44caf2542d35d6585ba1df80
Signed-off-by: Digish Pandya <digishp@codeaurora.org>
2014-05-15 08:59:22 +05:30
Chris Craik
90eaf92e32 am 7e13d1d4: am f6c9c420: Merge "Correct stride for drawing to cached glyph bitmap"
* commit '7e13d1d4a46a01ebaa412d622ef76d90bd39d12a':
  Correct stride for drawing to cached glyph bitmap
2014-05-09 21:51:49 +00:00
Chris Craik
7e13d1d4a4 am f6c9c420: Merge "Correct stride for drawing to cached glyph bitmap"
* commit 'f6c9c4204c2f8f86277d081112c9dd863ddaa778':
  Correct stride for drawing to cached glyph bitmap
2014-05-09 21:46:43 +00:00
Digish Pandya
b9312a54e4 Correct stride for drawing to cached glyph bitmap
fixes the glyph cachebuffer index to account for pixelbuffer
format size.

issue: in launcher home screen create icon group and rename the
group to some text string with emo-icons (smilies). without this
change the drop shadows for emo-icons will look bad.

Change-Id: I525a9219d35f4541363fd64e7fc5fd1053269725
Signed-off-by: Digish Pandya <digishp@codeaurora.org>
2014-05-09 15:05:16 +05:30
Chris Craik
3cb74d21b2 am 5d8343b8: am a85db5ab: Merge "libhwui: Handle the blurImage() implement once RS::init fail"
* commit '5d8343b8e27e766b5bfaaed2f9b1952c0d15da8d':
  libhwui: Handle the blurImage() implement once RS::init fail
2014-05-05 21:50:34 +00:00
Chris Craik
5d8343b8e2 am a85db5ab: Merge "libhwui: Handle the blurImage() implement once RS::init fail"
* commit 'a85db5ab785c59726c3644999801e48f449714f3':
  libhwui: Handle the blurImage() implement once RS::init fail
2014-05-05 21:46:48 +00:00
Chris Craik
a85db5ab78 Merge "libhwui: Handle the blurImage() implement once RS::init fail" 2014-05-05 21:44:08 +00:00
Bill Yi
293513a59d Merge commit '0b62467b142b61ee1e449ba958ba37dfd961ef56' into HEAD 2014-04-29 16:07:29 -07:00
Lu, Shenghua
ea42e01527 libhwui: Handle the blurImage() implement once RS::init fail
Once the RS::init failed, go through the original single thread path,
this will avoid blocking the main thread(ANR), but we also should have
some implement in RenderScript component.

Change-Id: I3a21395ffd5bc144c15254893f425b1dd2643ba4
Signed-off-by: Shenghua Lu <shenghua.lu@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
2014-04-25 16:11:13 +08:00
Victoria Lease
2c423b22b4 am df64ac68: ask skia to use flat gamma when rendering fonts from hwui
* commit 'df64ac688d400c74438db091952d236fffd5f778':
  ask skia to use flat gamma when rendering fonts from hwui
2014-04-22 22:57:29 +00:00
Victoria Lease
df64ac688d ask skia to use flat gamma when rendering fonts from hwui
Bug: 13748392
Change-Id: I6930629b8e900628f15354f663b86dfb29a4db78
(cherry picked from commit b66270eac288de53207e55d10879b070a0ec8b6b)
2014-04-22 22:54:10 +00:00
Ben Cheng
3399ec317d am b386bfd7: am 89dddcc9: Merge "Use default visibility for Snapshot::getLocalClip."
* commit 'b386bfd791d77e24bcfe3261420f82b0a9d3851d':
  Use default visibility for Snapshot::getLocalClip.
2014-04-02 20:59:47 +00:00
Ben Cheng
b386bfd791 am 89dddcc9: Merge "Use default visibility for Snapshot::getLocalClip."
* commit '89dddcc948cb3e826bfddeefae73066849aba0fc':
  Use default visibility for Snapshot::getLocalClip.
2014-04-02 20:54:47 +00:00
Ben Cheng
65ba94f79d Use default visibility for Snapshot::getLocalClip.
The method is in libhwui.so but used by libandroid_runtime.so
(via android_view_GLES20Canvas.cpp). If the compiler decides not to
inline this method, the linker won't be able to resolve the dependency
when it has hidden visibility.

The problem is found when testing GCC 4.9.

Change-Id: I3b4d096c7767f0bef0796886dfb2c5ba2ecff48c
2014-04-02 13:26:33 -07:00
Narayan Kamath
22d074643e resolved conflicts for merge of eaab4df0 to klp-modular-dev-plus-aosp
Change-Id: I871431e5a3ce45a33563ced845e044d37471689b
2014-03-27 12:50:58 +00:00
Narayan Kamath
eaab4df0dd am cd3f60f3: Merge "AArch64: Make frameworks/base code more portable"
* commit 'cd3f60f30366a34b4499aab5a47b622069ba9cd6':
  AArch64: Make frameworks/base code more portable
2014-03-27 12:36:10 +00:00
Ashok Bhat
f5df700e6c AArch64: Make frameworks/base code more portable
Changes in this patch include

[x] Use %zu for size_t, %zd for ssize_t

[x] Some minor changes have been done to conform with
    standard JNI practice (e.g. use of jint instead of int
    in JNI function prototypes)

Change-Id: Id1aaa7894a7d0b85ac7ecd7b2bfd8cc40374261f
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Craig Barber <craig.barber@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
2014-03-27 12:30:42 +00:00
Chris Craik
7e55b35a60 am 4118480a: am 80470cdf: Merge "Solve three memory leaks related to PatchCache"
* commit '4118480aabb4a7b332e289ebb71d2e4f9bc05d7e':
  Solve three memory leaks related to PatchCache
2014-03-25 20:28:00 +00:00
Chris Craik
6fe434a41b am 4118480a: am 80470cdf: Merge "Solve three memory leaks related to PatchCache"
* commit '4118480aabb4a7b332e289ebb71d2e4f9bc05d7e':
  Solve three memory leaks related to PatchCache
2014-03-25 20:27:52 +00:00
Chris Craik
4118480aab am 80470cdf: Merge "Solve three memory leaks related to PatchCache"
* commit '80470cdf6c6995f4afe8d5e2c4b6e898625173fb':
  Solve three memory leaks related to PatchCache
2014-03-25 13:21:01 -07:00
Jens Gulin
6056e10271 Solve three memory leaks related to PatchCache
A Patch can be fairly large, holding bitmap data, but
is also frequently leaked which adds to the severity.
The feature is used in many important processes such
as Home, SystemUI and Chrome.

The following leaks are solved:

1. The Patch itself was not always freed.
PatchCache::removeDeferred() can mark patches to be
cared for by PatchCache::clearGarbage(). But
mCache.remove() would only destroy the container
and the pointer, not the Patch object itself.

2. The vertices stored in the Patch at Patch::createMesh()
would always leak. The empty/default destructor in Patch
would not properly destroy "vertices" since it's just a
pointer.

3. A BufferBlock that's added to the mFreeBlocks
in PatchCache could leak. The leak happened when a
patch later needed the entire free block, because the
object was removed from the list but never deleted
in PatchCache::setupMesh().

Change-Id: I41e60824479230b67426fc546d3dbff294c8891f
2014-03-25 09:37:02 +09:00
Leon Scroggins III
2488727a59 Update framework to use M33 Skia. DO NOT MERGE
(These CLs are already in master.)

Bug: 13246311

This cherry-picks 7 CLs:

-----------------------------------------------------------------------

Remove calls to deprecated SkBitmap::setIsOpaque()

setIsOpaque() has been removed from ToT Skia.

Update setters for mIsPremultiplied and hasAlpha to take the
other into consideration.

cherry-pick from: I1b36b0b0ce7126031eb7b769b563c17dcd4b306a

-----------------------------------------------------------------------

Merge AssetStream with AssetStreamAdaptor.

Add enums to the constructor for AssetStreamAdaptor to choose the
different behaviors used by the (former) two different classes.

The old clients of AssetStream now get the following features of
AssetStreamAdaptor
- Debugging statements on error.
- The stream is an SkStreamRewindable.
- getLength() returns the correct value, and the old way of getting
  the length (read(NULL, 0)) is no longer implemented, since it is
  no longer used.
- isAtEnd() returns the correct value. ToT Skia makes it pure virtual,
  so some implementation is necessary.

cherry-pick from: I2a5395914e4f53830aaefee396556459083a1c56

-----------------------------------------------------------------------

Deprecate Android-specific SkPaint functions.

The following functions were problematic:
 const SkGlyph& getUnicharMetrics(SkUnichar, const SkMatrix*);
 const SkGlyph& getGlyphMetrics(uint16_t, const SkMatrix*);
 const void* findImage(const SkGlyph&, const SkMatrix*);

Replacing them with calls through SkGlyphCache solved a nasty crash
bug, so they have all been deprecated.

Bug: 11968757
cherry-pick from: Id746315d41aec5b211b78b172a883c2061130f08

-----------------------------------------------------------------------

pass SkGlyphCache into updateGlyphCache()

Doing so prevents us from double-locking the glyph cache, thereby
effectively locking ourselves out of reusing work that we'd just done.

Bug: 11968757
cherry-pick from: I5c552f2d0bbe30af2ce9054ba684e7da756a0d89

-----------------------------------------------------------------------

Updates to the Skia API needed to merge the WebView m33 version of Skia.

cherry-pick from: I0f63b53f2aae58871413b132742fc84138f069a3

Bugfix for screenshots (recent apps) due to incorrect rowBytes computation

bug: 12915192
cherry-pick from: I4d5fe2a2f75baf66099e0970fb646686a1992714

-----------------------------------------------------------------------

Fix bug in AndroidPixelRef where we did not store the correct imageInfo for a recycled bitmap.

cherry-pick from: I882483b78886e2f19fa4e43a86e69f5a82b3b7e5

-----------------------------------------------------------------------

Change-Id: Icaf597783da3ffb079ea18badb78fa31403bf8b8
2014-03-20 15:38:46 -04:00
Chris Craik
4eefde23de am 29f00c9f: am 7c9bd98a: am 89513ee5: Merge "Fix projection offset caching - DO NOT MERGE" into klp-dev
* commit '29f00c9f35d8565bb3e6b8a2526cbb237db6446a':
  Fix projection offset caching - DO NOT MERGE
2014-03-20 15:47:34 +00:00
Chris Craik
d23d5b192a am 7c9bd98a: am 89513ee5: Merge "Fix projection offset caching - DO NOT MERGE" into klp-dev
* commit '7c9bd98a4bb0aa6954d5f612c197d03f309980f0':
  Fix projection offset caching - DO NOT MERGE
2014-03-20 15:42:24 +00:00
Chris Craik
29f00c9f35 am 7c9bd98a: am 89513ee5: Merge "Fix projection offset caching - DO NOT MERGE" into klp-dev
* commit '7c9bd98a4bb0aa6954d5f612c197d03f309980f0':
  Fix projection offset caching - DO NOT MERGE
2014-03-20 01:14:44 +00:00
Chris Craik
5d39a77992 Fix projection offset caching - DO NOT MERGE
bug:13214038

Because the caching of projection matrix didn't account for changes in
the offset flag, the flag could be ignored. Now we use both to verify
that the cached matrix can be used.

Change-Id: I193b94eaf0b98f046a6484f0866c3d25048653fd
(cherry picked from commit d04a6b15f74035fd2068f34225825b55e94521f4)
2014-03-19 20:09:04 +00:00
Leon Scroggins III
96978ee290 am f8d8777d: Update framework to use M33 Skia. DO NOT MERGE
* commit 'f8d8777dddf91c741981b4f795f2fb2b1d81c1b6':
  Update framework to use M33 Skia. DO NOT MERGE
2014-03-17 15:55:43 +00:00
Leon Scroggins III
f8d8777ddd Update framework to use M33 Skia. DO NOT MERGE
(These CLs are already in master.)

Bug: 13246311

This cherry-picks 7 CLs:

-----------------------------------------------------------------------

Remove calls to deprecated SkBitmap::setIsOpaque()

setIsOpaque() has been removed from ToT Skia.

Update setters for mIsPremultiplied and hasAlpha to take the
other into consideration.

cherry-pick from: I1b36b0b0ce7126031eb7b769b563c17dcd4b306a

-----------------------------------------------------------------------

Merge AssetStream with AssetStreamAdaptor.

Add enums to the constructor for AssetStreamAdaptor to choose the
different behaviors used by the (former) two different classes.

The old clients of AssetStream now get the following features of
AssetStreamAdaptor
- Debugging statements on error.
- The stream is an SkStreamRewindable.
- getLength() returns the correct value, and the old way of getting
  the length (read(NULL, 0)) is no longer implemented, since it is
  no longer used.
- isAtEnd() returns the correct value. ToT Skia makes it pure virtual,
  so some implementation is necessary.

cherry-pick from: I2a5395914e4f53830aaefee396556459083a1c56

-----------------------------------------------------------------------

Deprecate Android-specific SkPaint functions.

The following functions were problematic:
 const SkGlyph& getUnicharMetrics(SkUnichar, const SkMatrix*);
 const SkGlyph& getGlyphMetrics(uint16_t, const SkMatrix*);
 const void* findImage(const SkGlyph&, const SkMatrix*);

Replacing them with calls through SkGlyphCache solved a nasty crash
bug, so they have all been deprecated.

Bug: 11968757
cherry-pick from: Id746315d41aec5b211b78b172a883c2061130f08

-----------------------------------------------------------------------

pass SkGlyphCache into updateGlyphCache()

Doing so prevents us from double-locking the glyph cache, thereby
effectively locking ourselves out of reusing work that we'd just done.

Bug: 11968757
cherry-pick from: I5c552f2d0bbe30af2ce9054ba684e7da756a0d89

-----------------------------------------------------------------------

Updates to the Skia API needed to merge the WebView m33 version of Skia.

cherry-pick from: I0f63b53f2aae58871413b132742fc84138f069a3

Bugfix for screenshots (recent apps) due to incorrect rowBytes computation

bug: 12915192
cherry-pick from: I4d5fe2a2f75baf66099e0970fb646686a1992714

-----------------------------------------------------------------------

Fix bug in AndroidPixelRef where we did not store the correct imageInfo for a recycled bitmap.

cherry-pick from: I882483b78886e2f19fa4e43a86e69f5a82b3b7e5

-----------------------------------------------------------------------

Change-Id: Ie2b731a9f0795802418cfecddb4b684c92c64d33

Conflicts:
	core/jni/android/graphics/Bitmap.cpp
	core/jni/android/graphics/Graphics.cpp
	core/jni/android/graphics/Typeface.cpp
	graphics/java/android/graphics/Bitmap.java
2014-03-17 13:57:18 +00:00
Narayan Kamath
a742ca4017 am bbf82665: am 6e2fb587: Merge "LP64: Make 9 patches architecture agnostic."
* commit 'bbf826659e8e5d0be683b2459207c495303d53b6':
  LP64: Make 9 patches architecture agnostic.
2014-03-11 18:52:07 +00:00
Chris Craik
fa03b57295 am 7b4cce68: am c3bac8a0: Merge "Fix graphics corruption caused by HWUI caches"
* commit '7b4cce68853d8bcfce2b6bd7f999915063eb56d2':
  Fix graphics corruption caused by HWUI caches
2014-03-11 18:08:10 +00:00
Narayan Kamath
bbf826659e am 6e2fb587: Merge "LP64: Make 9 patches architecture agnostic."
* commit '6e2fb587d71631bd29fdb844a6451d68e2144337':
  LP64: Make 9 patches architecture agnostic.
2014-03-10 03:46:07 -07:00
Narayan Kamath
6381dd4ff2 LP64: Make 9 patches architecture agnostic.
The Res_png_9patch struct had several pointer members
whose size differed between 32 and 64 bit platforms.

These members have been replaced by uint32_t offsets
to serialized data. The serialized form for 9patches
places a Res_png_9patch object at the beginning of
serialized data, followed by int32_t arrays of xDivs,
yDivs and colors.

Note that these offsets are not strictly required,
since they can be computed from the values of numXDivs,
numYDivs & numColors, however they are called in tight
loops so having them computed once is a beneficial.

This change also removed the unused patch_equals function
from aapt's Image.cpp.

Change-Id: I3b9ac8ae5c05510d41377cae4dff1c69b40c2531
2014-03-10 10:00:02 +00:00
Narayan Kamath
126fbb6ec9 am 19256340: am 22c66639: Merge "Fixes for 64bit in libhwui"
* commit '192563407964926537d688d4098054c3834341c0':
  Fixes for 64bit in libhwui
2014-03-08 01:51:21 +00:00
Narayan Kamath
cde7868356 am b152473f: am 9fce8535: Merge "AArch64: Make AssetAtlasService 64-bit compatible"
* commit 'b152473f46d8176e7eb2c55b54342a7a29c525cf':
  AArch64: Make AssetAtlasService 64-bit compatible
2014-03-07 19:41:24 +00:00
Leon Scroggins III
42ae4cf2ce Merge "resolved conflicts for merge of 8d3281f5 to klp-dev-plus-aosp" into klp-dev-plus-aosp 2014-03-07 18:26:19 +00:00
Leon Scroggins III
e648c19bf3 resolved conflicts for merge of 8d3281f5 to klp-dev-plus-aosp
Change-Id: If2855ff4f7a1e7645c69af378955868f44187376
2014-03-06 20:10:19 -05:00