diff options
-rw-r--r-- | core/jni/android/graphics/Canvas.cpp | 14 | ||||
-rw-r--r-- | core/jni/android/graphics/NinePatchImpl.cpp | 6 | ||||
-rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 9 |
3 files changed, 7 insertions, 22 deletions
diff --git a/core/jni/android/graphics/Canvas.cpp b/core/jni/android/graphics/Canvas.cpp index 9d9196e..17b0d3e 100644 --- a/core/jni/android/graphics/Canvas.cpp +++ b/core/jni/android/graphics/Canvas.cpp @@ -73,20 +73,6 @@ public: static jboolean isOpaque(JNIEnv* env, jobject jcanvas) { NPE_CHECK_RETURN_ZERO(env, jcanvas); SkCanvas* canvas = GraphicsJNI::getNativeCanvas(env, jcanvas); - - /* - Currently we cannot support transparency in GL-based canvas' at - the view level. Therefore we cannot base our answer on the device's - bitmap, but need to hard-code the answer. If we relax this - limitation in views, we can simplify the following code as well. - - Use the getViewport() call to find out if we're gl-based... - */ - if (canvas->getViewport(NULL)) { - return true; - } - - // normal technique, rely on the device's bitmap for the answer return canvas->getDevice()->accessBitmap(false).isOpaque(); } diff --git a/core/jni/android/graphics/NinePatchImpl.cpp b/core/jni/android/graphics/NinePatchImpl.cpp index ff24a87..a3e36ee 100644 --- a/core/jni/android/graphics/NinePatchImpl.cpp +++ b/core/jni/android/graphics/NinePatchImpl.cpp @@ -116,9 +116,9 @@ void NinePatch_Draw(SkCanvas* canvas, const SkRect& bounds, paint = &defaultPaint; } - // if our canvas is GL, draw this as a mesh, which will be faster than - // in parts (which is faster for raster) - if (canvas && canvas->getViewport(NULL)) { + // if our SkCanvas were back by GL we should enable this and draw this as + // a mesh, which will be faster in most cases. + if (false) { SkNinePatch::DrawMesh(canvas, bounds, bitmap, chunk.xDivs, chunk.numXDivs, chunk.yDivs, chunk.numYDivs, diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 3232f6f..560c1f9 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -2434,12 +2434,11 @@ void OpenGLRenderer::getAlphaAndMode(SkPaint* paint, int* alpha, SkXfermode::Mod } SkXfermode::Mode OpenGLRenderer::getXfermode(SkXfermode* mode) { - // In the future we should look at unifying the Porter-Duff modes and - // SkXferModes so that we can use SkXfermode::IsMode(xfer, &mode). - if (mode == NULL) { - return SkXfermode::kSrcOver_Mode; + SkXfermode::Mode resultMode; + if (!SkXfermode::AsMode(mode, &resultMode)) { + resultMode = SkXfermode::kSrcOver_Mode; } - return mode->fMode; + return resultMode; } void OpenGLRenderer::setTextureWrapModes(Texture* texture, GLenum wrapS, GLenum wrapT) { |