Merge "Fix use of Skia deprecated methods"

This commit is contained in:
Chris Craik
2014-02-28 20:39:57 +00:00
committed by Android (Google) Code Review
5 changed files with 22 additions and 15 deletions

View File

@@ -164,6 +164,7 @@ LOCAL_C_INCLUDES += \
$(TOP)/frameworks/av/include \
$(TOP)/system/media/camera/include \
external/skia/src/core \
external/skia/src/effects \
external/skia/src/images \
external/sqlite/dist \
external/sqlite/android \

View File

@@ -1,5 +1,6 @@
#include "GraphicsJNI.h"
#include "SkMaskFilter.h"
#include "SkBlurMask.h"
#include "SkBlurMaskFilter.h"
#include "SkTableMaskFilter.h"
@@ -19,8 +20,9 @@ public:
}
static jlong createBlur(JNIEnv* env, jobject, jfloat radius, jint blurStyle) {
SkMaskFilter* filter = SkBlurMaskFilter::Create(SkFloatToScalar(radius),
(SkBlurMaskFilter::BlurStyle)blurStyle);
SkScalar sigma = SkBlurMask::ConvertRadiusToSigma(SkFloatToScalar(radius));
SkMaskFilter* filter = SkBlurMaskFilter::Create(sigma,
(SkBlurMaskFilter::BlurStyle)blurStyle);
ThrowIAE_IfNull(env, filter);
return reinterpret_cast<jlong>(filter);
}
@@ -34,10 +36,9 @@ public:
direction[i] = SkFloatToScalar(values[i]);
}
SkMaskFilter* filter = SkBlurMaskFilter::CreateEmboss(direction,
SkFloatToScalar(ambient),
SkFloatToScalar(specular),
SkFloatToScalar(radius));
SkScalar sigma = SkBlurMask::ConvertRadiusToSigma(SkFloatToScalar(radius));
SkMaskFilter* filter = SkBlurMaskFilter::CreateEmboss(sigma,
direction, SkFloatToScalar(ambient), SkFloatToScalar(specular));
ThrowIAE_IfNull(env, filter);
return reinterpret_cast<jlong>(filter);
}

View File

@@ -520,7 +520,7 @@ static jlong ComposeShader_postCreate1(JNIEnv* env, jobject o, jlong shaderHandl
SkiaShader* shaderB = reinterpret_cast<SkiaShader *>(shaderBHandle);
SkXfermode* mode = reinterpret_cast<SkXfermode *>(modeHandle);
SkXfermode::Mode skiaMode;
if (!SkXfermode::IsMode(mode, &skiaMode)) {
if (!SkXfermode::AsMode(mode, &skiaMode)) {
// TODO: Support other modes
skiaMode = SkXfermode::kSrcOver_Mode;
}

View File

@@ -788,7 +788,7 @@ public:
deferInfo.mergeable = state.mMatrix.isSimple() && state.mMatrix.positiveScale() &&
!state.mClipSideFlags &&
OpenGLRenderer::getXfermodeDirect(mPaint) == SkXfermode::kSrcOver_Mode &&
(mBitmap->getConfig() != SkBitmap::kA8_Config);
(mBitmap->config() != SkBitmap::kA8_Config);
}
const SkBitmap* bitmap() { return mBitmap; }

View File

@@ -52,7 +52,12 @@ namespace uirenderer {
#define ALPHA_THRESHOLD 0
#define FILTER(paint) (!paint || paint->isFilterBitmap() ? GL_LINEAR : GL_NEAREST)
static GLenum getFilter(const SkPaint* paint) {
if (!paint || paint->getFilterLevel() != SkPaint::kNone_FilterLevel) {
return GL_LINEAR;
}
return GL_NEAREST;
}
///////////////////////////////////////////////////////////////////////////////
// Globals
@@ -1973,7 +1978,7 @@ void OpenGLRenderer::drawAlphaBitmap(Texture* texture, float left, float top, co
texture->setFilter(GL_NEAREST, true);
} else {
texture->setFilter(FILTER(paint), true);
texture->setFilter(getFilter(paint), true);
}
// No need to check for a UV mapper on the texture object, only ARGB_8888
@@ -1998,7 +2003,7 @@ status_t OpenGLRenderer::drawBitmaps(const SkBitmap* bitmap, AssetAtlas::Entry*
const AutoTexture autoCleanup(texture);
texture->setWrap(GL_CLAMP_TO_EDGE, true);
texture->setFilter(pureTranslate ? GL_NEAREST : FILTER(paint), true);
texture->setFilter(pureTranslate ? GL_NEAREST : getFilter(paint), true);
const float x = (int) floorf(bounds.left + 0.5f);
const float y = (int) floorf(bounds.top + 0.5f);
@@ -2174,7 +2179,7 @@ status_t OpenGLRenderer::drawBitmapMesh(const SkBitmap* bitmap, int meshWidth, i
const AutoTexture autoCleanup(texture);
texture->setWrap(GL_CLAMP_TO_EDGE, true);
texture->setFilter(FILTER(paint), true);
texture->setFilter(getFilter(paint), true);
int alpha;
SkXfermode::Mode mode;
@@ -2259,10 +2264,10 @@ status_t OpenGLRenderer::drawBitmap(const SkBitmap* bitmap,
dstLeft = x;
dstTop = y;
texture->setFilter(scaled ? FILTER(paint) : GL_NEAREST, true);
texture->setFilter(scaled ? getFilter(paint) : GL_NEAREST, true);
ignoreTransform = true;
} else {
texture->setFilter(FILTER(paint), true);
texture->setFilter(getFilter(paint), true);
}
if (CC_UNLIKELY(useScaleTransform)) {
@@ -3382,7 +3387,7 @@ void OpenGLRenderer::drawTextureRect(float left, float top, float right, float b
paint, texture->blend, vertices, texCoords,
GL_TRIANGLE_STRIP, gMeshCount, false, true);
} else {
texture->setFilter(FILTER(paint), true);
texture->setFilter(getFilter(paint), true);
drawTextureMesh(left, top, right, bottom, texture->id, paint,
texture->blend, vertices, texCoords, GL_TRIANGLE_STRIP, gMeshCount);
}