c1469f39b571f5660346fc837ac30b19d7651a43 |
|
25-Aug-2014 |
John Reck <jreck@google.com> |
DO NOT MERGE Copy shaders Bug: 16733996 Change-Id: I84afc1b24a23dd6ddf5ab48fb2bfcbe779f8d3e3
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
01edef10b9724fa5607d7918addc31a3b0c991dc |
|
22-Aug-2014 |
John Reck <jreck@google.com> |
Revert immutable Shader change Bug: 16733996 Change-Id: I51686aaf8f6ae8d0e390e298ad70f98f81c5f555
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
866cf65cc3c53f67836c9157d5c661adfdbd25e1 |
|
22-Jul-2014 |
Leon Scroggins III <scroggo@google.com> |
Make updateLocalMatrix replace the current Matrix. Fixes a bug introduced in I3c3316377874e89fccc85afb864bc038b0ef3890. CreateLocalMatrixShader combines the existing matrix with the new matrix, which is not what we want. Keep track of the original SkShader at all times, and always create the local matrix shader with the original. Store the SkShader with a local matrix as Shader.native_with_local_matrix. Make Shader.native_instance private. Instead of allowing direct access, add an init() method which sets it, and getNativeInstance(), which returns either native_instance or native_with_local_matrix, as appropriate. Make Shader subclasses call init(), instead of setting native_instance directly. Pass native_with_local_matrix pointer to nativeSetLocalMatrix and nativeDestructor, which unrefs it (if not null). Since nativeSetLocalMatrix no longer replaces the original, do not unref it. Add a comment to Shader.updateLocalMatrix that it does not affect ComposeShaders created with this Shader. (This should have been a part of I3c3316377874e89fccc85afb864bc038b0ef3890.) BUG:16293121 Change-Id: Ieb31c7e1fe99081f6b81493178f4a18d3c5df643
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
ab87983a11e0bd2e08d752d86d5e945ea7d39a04 |
|
09-Jul-2014 |
Leon Scroggins III <scroggo@google.com> |
Simplify Shader.setLocalMatrix. Previously, calling setLocalMatrix updated any Paint that had the Shader attached. This depended on deprecated behavior in Skia. Use new Skia APIs, and do not modify any Paints that use the Shader. In addition, update callers to call setShader (again) after modifying the Shader. Sample app at ag/499573 for testing. Depends on I673801444f0a8fd4f192b5b7effdde1aa83e702b in external/skia. BUG:14315916 Change-Id: I3c3316377874e89fccc85afb864bc038b0ef3890
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
d1ad5e62fda248c6d185cde3cb6d9f01a223066c |
|
05-May-2014 |
Leon Scroggins III <scroggo@google.com> |
Inspect SkShader to determine hw shader. Instead of duplicating internal info about SkShader, inspect the SkShader installed on the SkPaint. core/java/android/view/GLES20Canvas.java: Remove setupModifiers, nResetModifiers, and nSetupShader. core/jni/android/graphics/Shader.cpp: Remove calls to create/destroy the (previously) attached SkiaShader. core/jni/android_view_GLES20Canvas.cpp: Remove native code for setupShader and resetModifiers. graphics/java/android/graphics/BitmapShader.java: graphics/java/android/graphics/ComposeShader.java: graphics/java/android/graphics/LinearGradient.java: graphics/java/android/graphics/RadialGradient.java: graphics/java/android/graphics/Shader.java: graphics/java/android/graphics/SweepGradient.java: Remove code keeping track of native SkiaShader. libs/hwui/Caches.h: Include Extensions.h. libs/hwui/DeferredDisplayList.cpp: Compare shaders on the paint, instead of on DrawModifiers. libs/hwui/DisplayList.cpp: libs/hwui/DisplayList.h: Remove vector of SkiaShaders. libs/hwui/DisplayListOp.h: Access the SkShader on mPaint. Remove SetupShaderOp and ResetShaderOp. libs/hwui/DisplayListRenderer.cpp: libs/hwui/DisplayListRenderer.h: Remove resetShader, setupShader, refShader, and mShaderMap. libs/hwui/FontRenderer.cpp: Pass SkShader to setupDrawShader and setupDrawShaderUniforms. libs/hwui/OpenGLRenderer.cpp: libs/hwui/OpenGLRenderer.h: Add LayerShader, a class inheriting from SkShader, to mimic the behavior of SkiaLayerShader. Unlike SkiaLayerShader, it can be set on the SkPaint so it can be inspected later. Set a LayerShader instead of a SkiaLayerShader. setupDrawShader and setupDrawShaderUniforms now inspect an SkShader passed in. Inspect SkShader instead of mDrawModifiers.mShader. Remove resetShader and setupShader. setupDrawColorUniforms now takes a boolean indicating whether there is a shader. Add an inline function for accessing the SkShader on an SkPaint. In setupDrawBlending(Layer*, bool), do not check the shader (which will never be set), but do check whether the color filter may change the alpha (newly fixed behavior). In setupDrawBlending(SkPaint, ...), check the SkShader and whether the color filter affects alpha (the latter is new behavior). libs/hwui/Renderer.h: Remove pure virtual functions setupShader and resetShader. libs/hwui/ResourceCache.cpp: libs/hwui/ResourceCache.h: Remove functions for refing/unrefing shaders. libs/hwui/SkiaShader.cpp: libs/hwui/SkiaShader.h: Much of this code was redundant and has been removed. Convert structs into class with nothing but static functions for calling describe/setupProgram. libs/hwui/TextureCache.cpp: libs/hwui/TextureCache.h: Use the SkPixelRef as the key to the bitmap Lru cache, since shader inspection will provide a different SkBitmap pointer (though it will hold the correct SkPixelRef with the correct generation ID). tests/CanvasCompare/src/com/android/test/hwuicompare/DisplayModifier.java: tests/CanvasCompare/src/com/android/test/hwuicompare/ResourceModifiers.java: Update manual test to have more shaders: radial, sweep, compose, invalid compose. BUG:10650594 Change-Id: Iaa7189178bda1c55f96da044d2a9fa602ba36034
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
5932b0d8fc313f9e4f2c8e5c431ac0e270f9f259 |
|
17-Apr-2014 |
Skia_Android Canary Bot <31977622648@project.gserviceaccount.com> |
Call SkShader::isOpaque() to determine opaqueness. It is invalid to call SkShader::getFlags() before calling SkShader::setContext() - it will always return 0. Instead, call SkShader::isOpaque(). Change-Id: If35108dc7f0eca55d2ec8466b8a50fd54dfb13a2
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
2e0103eb340822f9d580c1aa8492bae8394b8243 |
|
04-Apr-2014 |
Leon Scroggins III <scroggo@google.com> |
Remove SkFloatToScalar. Now that SkScalar is always float (it may someday be double, but float to double is trivial), remove callers of SkFloatToScalar, which is deprecated in Skia. BUG:13694396 Change-Id: I524a9bb6f7702bc810bac55fb9d2cd5361a01cf7
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
67862524056ee2e73a94395139bb8bd0ec1ef38a |
|
28-Feb-2014 |
Chris Craik <ccraik@google.com> |
Fix use of Skia deprecated methods Change-Id: Ib89c20fc94bcce29b7490d6f55c73492735befda
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
36bef0bf30d6bae48cf3837df351075ca4fce654 |
|
20-Jan-2014 |
Ashok Bhat <ashok.bhat@arm.com> |
AArch64: Make graphics classes 64-bit compatible This a merger of two commits submitted to AOSP by the following authors: ashok.bhat@arm.com, david.butcher@arm.coma craig.barber@arm.com, kevin.petit@arm.com and marcus.oakland@arm.com Due to the very large number of internal conflicts, I have chosen to cherry-pick this change instead of letting it merge through AOSP because the merge conflict resolution would be very hard to review. Commit messages below: ================================================ AArch64: Make graphics classes 64-bit compatible Changes in this patch include [x] Long is used to store native pointers as they can be 64-bit. [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) [x] AssetAtlasManager is not completely 64-bit compatible yet. Specifically mAtlasMap member has to be converted to hold native pointer using long. Added a TODO to AssetAtlasManager.java to indicate the change required. 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> ================================================================== AArch64: Use long for pointers in graphics/Camera For storing pointers, long is used in android/graphics/Camera class, as native pointers can be 64-bit. In addition, some minor changes have been done to conform with standard JNI practice (e.g. use of jint instead of int in JNI function prototypes) Signed-off-by: Ashok Bhat <ashok.bhat@arm.com> Signed-off-by: Marcus Oakland <marcus.oakland@arm.com> =================================================================== Change-Id: Id5793fa0ebc17ee8b1eecf4b3f327977fdccff71
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
7023df08f14ec5dee76ac54c03e870f84e297636 |
|
27-Jan-2014 |
Narayan Kamath <narayan@google.com> |
Revert "AArch64: Make graphics classes 64-bit compatible" This reverts commit 18b4cbeedef21c1fa666a110a157bab66edff976. Change-Id: I0c52983a3ab1ace3ff743de546a43eca28e5cb0e
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
18b4cbeedef21c1fa666a110a157bab66edff976 |
|
20-Jan-2014 |
Ashok Bhat <ashok.bhat@arm.com> |
AArch64: Make graphics classes 64-bit compatible This a merger of two commits submitted to AOSP by the following authors: ashok.bhat@arm.com, david.butcher@arm.coma craig.barber@arm.com, kevin.petit@arm.com and marcus.oakland@arm.com Due to the very large number of internal conflicts, I have chosen to cherry-pick this change instead of letting it merge through AOSP because the merge conflict resolution would be very hard to review. Commit messages below: ================================================ AArch64: Make graphics classes 64-bit compatible Changes in this patch include [x] Long is used to store native pointers as they can be 64-bit. [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) [x] AssetAtlasManager is not completely 64-bit compatible yet. Specifically mAtlasMap member has to be converted to hold native pointer using long. Added a TODO to AssetAtlasManager.java to indicate the change required. 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> ================================================================== AArch64: Use long for pointers in graphics/Camera For storing pointers, long is used in android/graphics/Camera class, as native pointers can be 64-bit. In addition, some minor changes have been done to conform with standard JNI practice (e.g. use of jint instead of int in JNI function prototypes) Signed-off-by: Ashok Bhat <ashok.bhat@arm.com> Signed-off-by: Marcus Oakland <marcus.oakland@arm.com> =================================================================== Change-Id: Ib3eab85ed97ea3e3c227617c20f8d213f17d4ba0
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
42e1e0d482d774cf18a55773e434f02edb9e4462 |
|
30-Jul-2012 |
Romain Guy <romainguy@google.com> |
Improve gradients Avoid using textures for common gradients (two stops from 0.0 to 1.0) Change-Id: Iff55d21b126c8cfc4cfb701669f2339c8f6b131a
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
4cb1753ec6e90d7e747880c599dc1c164a568cf3 |
|
13-Apr-2011 |
Elliott Hughes <enh@google.com> |
Remove useless forward declarations. Change-Id: I8f191367acb18ea9a3f807e791099e0485b1b249
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
7b5b6abf852c039983eded25ebe43a70fef5a4ab |
|
15-Mar-2011 |
Romain Guy <romainguy@google.com> |
Fix rendering artifact in edge fades. Bug #4092053 The problem always existed but was made visible by partial invalidation. When saving a layer, the renderer would try to postpone glClear() operations until the next drawing command. This however does not work since the clip might have changed. The fix is rather simple and simply gets rid of this "optimization" (that turned out to be usless anyway given how View issues saveLayer() calls.) This change also fixes an issue with gradients (color stops where not properly computed when using a null stops array) and optimizes display lists rendering (quickly rejects larger portions of the tree to avoid executing unnecessary code.) Change-Id: I0f5b5f6e1220d41a09cc2fa84c212b0b4afd9c46
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
6062c5912dc79704b489fc8c289b78a400ed05ee |
|
22-Feb-2011 |
Derek Sollenberger <djsollen@google.com> |
Skia Merge (revision 808) This is a companion CL to the one found in /external/skia Change-Id: If81748545435cab20a5d8479329ab333cb973e16
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
a9ebfa6bcce62d7fee69693fe3dee6027afd3f0e |
|
05-Jan-2011 |
Romain Guy <romainguy@google.com> |
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
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
ad93c2bb63dfc813b2eefa1043aa63afbddce655 |
|
23-Oct-2010 |
Chet Haase <chet@google.com> |
Optimizing ColorFilter in display lists Change-Id: Ie4d5e5b0bc45e0ce47bba144049303c270762e54
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
5c13d89c1332fcc499379b9064b891187b75ca32 |
|
08-Oct-2010 |
Chet Haase <chet@google.com> |
Optimizing display lists by referencing pointers to resources instead of copying them Change-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
ddb80bebb0776e6d852aab6e8bba5d5591847a55 |
|
21-Sep-2010 |
Romain Guy <romainguy@google.com> |
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
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
ee916f14cbd1fe1422c063ce2ef7b185e2bc5c6f |
|
21-Sep-2010 |
Romain Guy <romainguy@google.com> |
Add support for SweepGradient in the GL renderer. Change-Id: I7aa397ed4e34655ead9ba1f5b4ce087665e0f022
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
a2341a9f6addcd79723965ec5b1a1c5ae0f8bd65 |
|
09-Sep-2010 |
Romain Guy <romainguy@google.com> |
Purge Skia objects from GL caches as needed. Change-Id: I754c671cf790ad5ae8bf047ad328034217da4ecc
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
48daa54d31fc59ec969dcff65eb3cbb0ce879a8d |
|
11-Aug-2010 |
Romain Guy <romainguy@google.com> |
Add extra blending modes. This change adds the following blending modes for shaders and color filters: Add Multiply Screen Overlay Darken Lighten Change-Id: Iff22f5ce6041b43c71b1857d73013f5010ab3413
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
61c8c9c5b2006d18e9310b6521c65b36ffe75ce4 |
|
10-Aug-2010 |
Romain Guy <romainguy@google.com> |
Fix tons of bugs and add new text rendering support. Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
163935113919a184122b8b3bd672ef08c8df65dc |
|
08-Aug-2010 |
Romain Guy <romainguy@android.com> |
Make libhwui entirely optional. The makefile variable USE_OPENGL_RENDERER must be set to true to compile libhwui and the related code in the JNI layer. This change also removes obsolete APIs from Canvas that must not be used and would be confusing if left in. These APIs were remnants of our first attempt at an OpenGL renderer for the view hierarchy and had not been taken out before Android 1.0 was released. Change-Id: I2475ff1307212bab26c926724f3c508681c7dae1
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
06f96e2652e4855b6520ad9dd70583677605b79a |
|
31-Jul-2010 |
Romain Guy <romainguy@google.com> |
Refactor Skia shaders handling. With this change, Skia shaders can easily be applied to any mesh. This change also supports ComposeShader. For instance, this can be used to blend a gradient and a bitmap togehter and paint a string of text with the result. Change-Id: I701c2f9cf7f89b2ff58005e8a1d0d80ccf4a4aea
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
7fac2e18339f765320d759e8d4c090f92431959e |
|
17-Jul-2010 |
Romain Guy <romainguy@android.com> |
Add plumbing to support gradients in OpenGL renderer. The LinearGradient class keeps a copy of the various parameters that define the gradient. The copies are native arrays to avoid copying Java arrays on every draw call. The gradient code path is implemented until OpenGLRenderer::drawRect() (see TODO.) The actual gradient implementation will be added in a latter change. Change-Id: I9300d250ef5e2e9c2e097c3116ee71dfc9d752d8
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
6af2552d244ff933dfd54570121db455cc7c3cda |
|
30-Jul-2009 |
Mike Reed <reed@google.com> |
use safeUnref() since the other macro is not defined in donut
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
a04e555dc91b11ad833cb5db4a24e38082d1dc45 |
|
30-Jul-2009 |
Mike Reed <reed@google.com> |
check for null native objects, which never happens on a real subclass (we throw in that case) but can happen because we allow the callers to create the base class from java.
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
b798689749c64baba81f02e10cf2157c747d6b46 |
|
10-Jan-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@125939
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
f013e1afd1e68af5e3b868c26a653bbfb39538f8 |
|
18-Dec-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Code drop from //branches/cupcake/...@124589
/frameworks/base/core/jni/android/graphics/Shader.cpp
|
54b6cfa9a9e5b861a9930af873580d6dc20f773c |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
/frameworks/base/core/jni/android/graphics/Shader.cpp
|